A宋锦瑞A @ 2023-07-11 10:06:17
#include <bits/stdc++.h>
using namespace std;
int s[1001],e[1001];
int n;
long long times;
int ans;
int a[10010];
int m[1024]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int x) {
return (x%400==0||(x%4==0&&x%100!=0));
}
int main() {
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&a[i]);
}
sort(a,a+n);
scanf("%d-%d-%d-%d:%d",&s[0],&s[1],&s[2],&s[3],&s[4]);
scanf("%d-%d-%d-%d:%d",&e[0],&e[1],&e[2],&e[3],&e[4]);
for(int i=s[0]; i<e[0]; i++) {
if(check(i)) {
times+=366;
} else {
times+=365;
}
}
if(check(s[0])) {
m[2]=29;
} else {
m[2]=28;
}
for(int i=1; i<s[0]; i++) {
times-=m[i];
}
for(int i=1; i<e[0]; i++) {
times+=m[i];
}
for(int i=1; i<s[1]; i++) {
times--;
}
for(int i=1; i<e[1]; i++) {
times++;
}
times=times*24*60;
times-=60*s[3]+s[4];
times+=60*e[3]+e[4];
for(int i=0; i<n; i++) {
if(times>=a[i]) {
times-=a[i];
ans++;
} else {
break;
}
}
printf("%d",ans);
return 0;
}
/*
2007 05 31 11 59
2008 04 01 12 00
*/
by A宋锦瑞A @ 2023-07-11 10:21:09
#include <bits/stdc++.h>
using namespace std;
int s[1001],e[1001];
int n;
long long times;
int ans;
int a[10010];
int m[1024]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int x) {
return (x%400==0||(x%4==0&&x%100!=0));
}
void feb(int x) {
if(check(x)) {
m[2]=29;
} else {
m[2]=28;
}
}
int main() {
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&a[i]);
}
sort(a,a+n);
scanf("%d-%d-%d-%d:%d",&s[0],&s[1],&s[2],&s[3],&s[4]);
scanf("%d-%d-%d-%d:%d",&e[0],&e[1],&e[2],&e[3],&e[4]);
for(int i=s[0]; i<e[0]; i++) {
if(check(i)) {
times+=366;
} else {
times+=365;
}
}
//year -> h
feb(s[0]);
for(int i=1; i<s[0]; i++) {
times-=m[i];
}
feb(e[0]);
for(int i=1; i<e[0]; i++) {
times+=m[i];
}
//moon -> h
for(int i=1; i<s[1]; i++) {
times-=24;
}
for(int i=1; i<e[1]; i++) {
times+=24;
}
//days -> h
for(int i=1; i<s[2]; i++) {
times--;
}
for(int i=1; i<e[2]; i++) {
times++;
}
//day -> min
times=times*24*60;
times-=60*s[3]+s[4];
times+=60*e[3]+e[4];
//sum++
for(int i=0; i<n; i++) {
if(times>=a[i]) {
times-=a[i];
ans++;
} else {
break;
}
}
//out
printf("%d",ans);
return 0;
}
/*
2007 05 31 11 59
2008 04 01 12 00
*/
改了一点,现在70pts
by 1234567890hh @ 2023-08-18 16:07:32
没开
long long
by 480624Wzh @ 2023-09-22 15:12:40
你小子已经见了祖宗 没开long long
by __szh_DNCB__ @ 2023-09-24 18:55:16
这种压根就没有减法的题如果是负数只有一种可能:\ 爆int啦!\ 这种时候应该赶紧打开long long,避免见祖宗
by vectoras @ 2024-08-08 15:20:50
可能数据太大,溢出了。 建议开long long.