照着题解自己理解着写了一下 有一个语句不太理解 测评只有50分 想知道怎么改

原题在这:到天宫做客 - 洛谷
题目描述
有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是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=0;
    int a,b;
    float m;
    int month[]={0,31,60,91,121,152,182,213,244,274,305,335,366};
    int count[9999]={0};
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a>>b;
        count[i]+=month[a-1];
        count[i]+=b;
    }
    sort(count,count+n-1);
    for(i=0;i<n+1;i++){
        ans=max(count[i+1]-count[i]-1,ans);//这个是什么意思捏 
    }
    m=(ans*1.0*24*3600/366)+0.5;
    ans=m;
    cout<<ans;
    return 0;
} 
    

解释一下这句吧,ans=max(count[i+1]-count[i]-1,ans);//这个是什么意思?
用max函数计算出,count[i+1]-count[i]-1和ans哪个最大,然后将最大的值赋值给ans。为什么这样说?
因为题目中说了我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。所以要找到一个最大的值。
希望对题主有所帮助,望采纳!!


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,i,a,b;
    int month[]={0,0,31,60,91,121,152,182,213,244,274,305,335,366};
    int count[9999][2];
    int day;
    int max_day = 0;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>count[i][0]>>count[i][1];
    }
    //先将日期排序方便求各个日期间隔
    for(i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(count[i][0]>count[j][0] || (count[i][0]==count[j][0] && count[i][1]>count[j][1])){
                swap(count[i][0], count[j][0]);
                swap(count[i][1], count[j][1]);
            }
        }
    }
    
    //求各个日期之间最大间隔,日期那一天是必须在人间的日期,所以要减掉这一天
    max_day = month[count[i][0]] + count[i][1] - 1;
    for(i=1;i<n;i++){
        day = month[count[i][0]] + count[i][1] - 1 - (month[count[i-1][0]] + count[i-1][1]);
        max_day = max(day, max_day);
    }
    day = 366 - (month[count[i-1][0]] + count[i-1][1]);
    max_day = max(day, max_day);
    
    //四舍五入
    cout<<(int)(max_day*24*60*60*1.0/366 + 0.5);
    return 0;
}