LemonJuice95 @ 2020-10-12 21:33:31
#include<bits/stdc++.h>
using namespace std;
int y,m,d,s,f,yy,mm,dd,ss,ff,fs,cnt;
int n,t[10005];
queue<int> q;
int month(int mon)
{
if(mon==1 || mon==3 || mon==5 || mon==7 || mon==8 || mon==10 || mon==12)
return 31;
if(mon==2)
{
if(y%4==0 && y%100!=0 || y%400==0)
return 29;
else
return 28;
}
return 30;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&t[i]);
scanf("%4d-%2d-%2d-%2d:%2d",&y,&m,&d,&s,&f);
scanf("%4d-%2d-%2d-%2d:%2d",&yy,&mm,&dd,&ss,&ff);
sort(t+1,t+n+1);
for(int i=1;i<=n;i++)
q.push(t[i]);
while((y<yy || m<mm || d<dd || s<ss || f<ff) && !q.empty())
{
f+=q.front();
q.pop();
if(f>=60)
f=0,s++;
if(s>=24)
s=0,d++;
if(d>=month(m))
d=0,m++;
if(m>12)
m=0,y++;
cnt++;
}
printf("%d",cnt);
return 0;
}
我是真不知道咋回事了,超时倒是不至于
by DIgnited @ 2020-10-12 21:44:10
我的
#include<bits/stdc++.h>
using namespace std;
int n,times,ans;
int a[10000];
int m1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int m2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int x[10],y[10];
bool scg(int y)
{
if((y%4==0 && y%400!=0) || y%400==0)
return true;
return false;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
scanf("%d-%d-%d-%d:%d",&x[1],&x[2],&x[3],&x[4],&x[5]);
scanf("%d-%d-%d-%d:%d",&y[1],&y[2],&y[3],&y[4],&y[5]);
for(int i=x[1];i<y[1];i++)
{
if(scg(i)==true)
times+=366;
else
times+=365;
}
if(scg(x[1]))
for(int i=1;i<x[2];i++)
times-=m2[i];
else
for(int i=1;i<x[2];i++)
times-=m1[i];
if(scg(y[1]))
for(int i=1;i<y[2];i++)
times+=m2[i];
else
for(int i=1;i<y[2];i++)
times+=m1[i];
for(int i=1;i<x[3];i++)
times--;
for(int i=1;i<y[3];i++)
times++;
times*=24*60;
times-=60*x[4]+x[5];
times+=60*y[4]+y[5];
for(int i=1;i<=n;i++)
{
if(times>=a[i])
{
times-=a[i];
ans++;
}
else
break;
}
printf("%d",ans);
return 0;
}
by DIgnited @ 2020-10-12 21:44:27
@Acceleratorst 参考一下