0
已解决
黄依成
中级天翼
中级天翼
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int m[15]={0,31,28,31,30,31,30,31,31,30,31,31,30};
int a[10],b[10],t,n,s[7005],ans;
bool f(int x){
if(((x%4==0)&&(x%100!=0))||x%400==0){
return true;
}else{
return false;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
sort(s+1,s+n+1);
scanf("%d-%d-%d-%d:%d",&a[1],&a[2],&a[3],&a[4],&a[5]);
scanf("%d-%d-%d-%d:%d",&b[1],&b[2],&b[3],&b[4],&b[5]);
for(int i=a[1];i<=b[1]-1;i++)
if(f(i)){
t-=366;
}else{
t-=365;
}
for(int i=1;i<a[2];i++){
t+=m[i];
}
for(int i=1;i<b[2];i++){
t-=m[i];
}
if(f(a[1])&&a[2]>2) t++;
if(f(b[1])&&b[2]>2) t--;
t+=a[3];
t-=b[3];
t*=1440;
t+=60*a[4]+a[5];
t-=60*b[4]+b[5];
t*=-1;
for(int i=1;i<=n;i++){
if(t>=s[i]){
t-=s[i],ans++;
}
else break;
}
cout<<ans;
return 0;
}
最后一个测试点死活过不掉,洛谷上能过