原题在这:https://www.luogu.com.cn/problem/solution/P1178
题目描述
有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。
输入格式
第一行是一个非负整数 N,表示4000年中必须呆在人间的天数。
以下共N行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。
输出格式
一个非负整数,即在天上的时间(四舍五入精确到11秒)。
输入输出样例
输入 #1复制
2
3 8
12 2
输出 #1复制
63266
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,ans;
int a,b;
int count[99999]={0};
double m;
int month[]={0,31,60,91,121,152,182,213,244,274,305,335,366};
cin>>n;
for(i=0;i<n;i++){
cin>>a>>b;
count[i]+=month[a-1];
count[i]+=b;
}
sort(count,count+n);
count[n]=367;
for(i=0;i<n;i++){
ans=max(count[i+1]-count[i]-1,ans);
}
m=(ans*1.0*24*3600/366)+0.5;
ans=m;
cout<<ans<<endl;
return 0;
}
谢谢大家