运行结果是正确的 只有90分 不知道哪里错了 想知道怎么改

原题在这: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;
} 
    谢谢大家


for(i=0;i<n;i++){
    ans=max(count[i+1]-count[i]-1,ans);
}
这里有i+1,i必然要小于n-1啊,不然就越界了说实话,就算偶然结果对了,也不应该得90分。