_Phoebe__ 2022-01-15 21:21 采纳率: 96.9%
浏览 19
已结题

运行结果是正确的 只有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;
} 
    谢谢大家


  • 写回答

1条回答 默认 最新

  • orange4reg 2022-01-16 14:03
    关注
    for(i=0;i<n;i++){
        ans=max(count[i+1]-count[i]-1,ans);
    }
    这里有i+1,i必然要小于n-1啊,不然就越界了说实话,就算偶然结果对了,也不应该得90分。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月24日
  • 已采纳回答 1月16日
  • 创建了问题 1月15日

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项