Gavinzhou @ 2024-07-02 21:43:34
#include <cstdio>
#include <algorithm>
#define int long long
using namespace std;
int n;
int a[5010];
bool runnian(int y){
if(y%4==0){
if(y%100==0){
if(y%400==0) return 1;
else return 0;
}
return 1;
}
return 0;
}
long long change(int y,int m,int d,int h,int min){
int ans=0;
if(runnian(y)){
ans+=527040*y+43776*m+1440*d+60*h+min;
}else{
ans+=525600*y+43776*m+1440*d+60*h+min;
}
return ans;
}
signed main(){
int y1,y2,m1,m2,d1,d2,h1,h2,min1,min2;
scanf("%lld",&n);
for(int i=0;i<n;i++)
scanf("%lld",&a[i]);
scanf("%lld-%lld-%lld-%lld:%lld",&y1,&m1,&d1,&h1,&min1);
scanf("%lld-%lld-%lld-%lld:%lld",&y2,&m2,&d2,&h2,&min2);
sort(a,a+n);
long long cnt=change(y2,m2,d2,h2,min2)-change(y1,m1,d1,h1,min1);
long long cnt1=0;
for(int i=0;i<n&&cnt;i++){
cnt-=a[i];
cnt1++;
}
printf("%lld",cnt1);
return 0;
}
写了1个小时竟然还wa了
by Gavinzhou @ 2024-07-02 21:48:34
自己改了下
#include <cstdio>
#include <algorithm>
#define int long long
using namespace std;
int n;
int a[5010];
bool runnian(int y){
if(y%4==0){
if(y%100==0){
if(y%400==0) return 1;
else return 0;
}
return 1;
}
return 0;
}
long long change(int y,int m,int d,int h,int min){
int ans=0;
if(runnian(y)){
ans+=527040*y+43776*m+1440*d+60*h+min;
}else{
ans+=525600*y+43776*m+1440*d+60*h+min;
}
return ans;
}
signed main(){
int y1,y2,m1,m2,d1,d2,h1,h2,min1,min2;
scanf("%lld",&n);
for(int i=0;i<n;i++)
scanf("%lld",&a[i]);
scanf("%lld-%lld-%lld-%lld:%lld",&y1,&m1,&d1,&h1,&min1);
scanf("%lld-%lld-%lld-%lld:%lld",&y2,&m2,&d2,&h2,&min2);
sort(a,a+n);
long long cnt=change(y2,m2,d2,h2,min2)-change(y1,m1,d1,h1,min1);
long long cnt1=0;
for(int i=0;i<n&&cnt-a[i]>=0;i++){
cnt-=a[i];
cnt1++;
}
printf("%lld",cnt1);
return 0;
}
60pts