对于一个刚学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++;
}
}
这题真的是细节的细节,信心满满开始写,结果不仅脑子要没了,还没输出,搞的我像小学生一样~~(好像还不如小学生)~~
脑子要没了,有没有大佬可以帮忙弄个调一下,拜托拜托