WA on #5 #6 #9 #10 万分感谢调代码的dalao Thanks♪(・ω・)ノ
(本人自闭了 交了6次 2次30 4次60,感觉问题在前面算时间上 手算看出问题了但是本蒟蒻不会改 毕竟是蒟蒻)
#include<bits/stdc++.h>
using namespace std;
int T[5005];
int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool ryear(int year){
if(!year%4&&year%100||!year%400) return 1;
else return 0;
}
int main()
{
int n,m=0,dd=0;
cin>>n;
for(int i=1; i<=n; i++) cin>>T[i];
int year1,month1,day1,h1,min1;
int year2,month2,day2,h2,min2;
scanf("%d-%d-%d-%d:%d",&year1,&month1,&day1,&h1,&min1);
scanf("%d-%d-%d-%d:%d",&year2,&month2,&day2,&h2,&min2);
unsigned long long minute1=0;
minute1=min1+h1*60+(day1-1)*24*60;
for(int i=1; i<=month1-1; i++) minute1+=d[month1]*24*60;
if(ryear(year1)&&month1-1>=2) minute1+=24*60;
for(int i=0; i<=year1; i++)
{
if(ryear(i)) minute1+=366*24*60;
else minute1+=365*24*60;
}
unsigned long long minute2=0;
minute2=min2+h2*60+(day2-1)*24*60;
for(int i=1; i<=month2-1; i++) minute2+=d[month2]*24*60;
if(ryear(year2)&&month2-1>=2) minute2+=24*60;
for(int i=0; i<=year2; i++)
{
if(ryear(i)) minute2+=366*24*60;
else minute2+=365*24*60;
}
m=minute2-minute1;
sort(T+1,T+n+1);
long long sum=0;int p=0;
for(int i=1; i<=n; i++){
sum+=T[i];
if(sum>m){
p=i-1;break;
}
else if(sum==m){
p=i;break;
}
}
if(!p) cout<<n;
else cout<<p;
return 0;
}