是哪里写错了吗,为什么没有输出啊
  • 板块P1167 刷题
  • 楼主zroa
  • 当前回复5
  • 已保存回复6
  • 发布时间2025/7/26 17:44
  • 上次更新2025/7/27 00:44:37
查看原帖
是哪里写错了吗,为什么没有输出啊
1662199
zroa楼主2025/7/26 17:44

对于一个刚学c++的蒟蒻来说,黄题已经是我的极限了

想问问各位大佬遇到不输出的情况一般应该怎么调(比如这题)

#include<bits/stdc++.h>
using namespace std;
long long s=0; 
int n,mm,yyyy,dd,ii,hh,yyyy2,mm2,dd2,hh2,ii2,a[5005];
int c(int n)
{
    if((n%4==0&&n%100!=0)||(n%400==0)) return 0;
    return 1;
}
void m(int mm,int mm2)
{
     if(mm2>=mm)
    {
            for(int i=mm;i<=mm2;i++) 
            {
                if(i==1||i==3||i==3||i==5||i==7||i==8||i==10||i==12)
                    s+=44640*(mm2-mm);
                else s+=43200*(mm2-mm);
            }
            if(dd2>=dd)
            {
                s+=(dd2-dd)*1440;
            }
        }
        else
        {
             if(c(mm)) s+=((365-dd)+dd2)*1440+(yyyy2-yyyy-1)*60*12*24;
            else s+=((366-dd)+dd2)*1440+(yyyy2-yyyy-1)*60*12*24;
        }
}
int main()
{
   
    int ans=0,cnt=0;
    char t;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    cin>>yyyy>>t>>mm>>t>>dd>>t>>hh>>t>>ii;
    cin>>yyyy2>>t>>mm2>>t>>dd2>>t>>hh2>>t>>ii2;
    if(hh2>=hh)
    {
        if(ii2>=ii)
            s+=ii2-ii+(hh2-hh)*60;
        else
            s+=(60-ii)+ii2+hh2-hh-1;
         for(int i=yyyy;i<=yyyy2;i++)
        {
            if(c(i))
            	s+=525600;
            else s+=527040;
        }
    }
    else
    {
        s+=((24-dd)+dd2)*60+(dd2-dd-1)*1440;
    }
    m(mm,mm2);
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++)
    {
        cnt+=a[i];
        if(cnt>=s)
        {
            cout<<ans;
            return 0;
        }
        else ans++;
    }
}

这题真的是细节的细节,信心满满开始写,结果不仅脑子要没了,还没输出,搞的我像小学生一样~~(好像还不如小学生)~~

脑子要没了,有没有大佬可以帮忙弄个调一下,拜托拜托

2025/7/26 17:44
加载中...