2265 - 到天宫做客

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是4000年。天上一天也是24小时,每小时60分,每分60秒。

题目输入

输入文件的第一行是一个非负整数 N,表示4000年中必须在人间的天数以下共N行,每行两个用空格隔开的正整数,即日期(月,日)输入文件保证无错误,日期无重复。

题目输出

输出文件一行包含一个非负整数,即在天上的时间(四舍五入精确到秒)。

输入/输出样例

输入格式

2
3 8
12 2

输出格式

63266

C++解答

#include<iostream>
#include<algorithm>
using namespace std;
int tim[400],day[400]={0};
int zhuanhuan(int x)
{
    int y;
    float m;
    y=(int)(x*24*60*60/366.0);
    m=x*24*60*60/366.0;
    if ((m-y)>=0.5) return y+1;
    else return y;
}
int change(int m,int d)
{
     while(m)
     if(m==1) return d;
     else if(m==2||m==4||m==6||m==8||m==9||m==11) {m--;d+=31;}
     else if(m==3) {m--;d+=29;}
     else {m--;d+=30;} 
}
int main()
{
    int n,m,d,ans;
    cin>>n;
    for (int i=1;i<=n;i++)
        {
             cin>>m>>d;
             day[i]=change(m,d);
         } 
    day[n+1]=367;
    sort(day+1,day+n+2);
    for (int i=1;i<=n+1;i++) tim[i]=day[i]-day[i-1]-1;
    sort(tim+1,tim+n+2);
    ans=zhuanhuan(tim[n+1]);
    cout<<ans<<endl;
    //system("pause");
    return 0;
}