社区讨论
WA 50pts 玄关求调
P1167刷题参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lpph552c
- 此快照首次捕获于
- 2023/12/03 20:44 2 年前
- 此快照最后确认于
- 2023/12/04 09:32 2 年前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int INF=0x3f3f3f;
int n;
int a[5010];
int s[11],e[11];
char c;
bool run(int y){
if(y%100==0&&y%400==0){
return 1;
}
if(y%100!=0&&y%4==0){
return 1;
}
return 0;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ym,yy;
cin>>s[1]>>c>>s[2]>>c>>s[3]>>c>>s[4]>>c>>s[5];
cin>>e[1]>>c>>e[2]>>c>>e[3]>>c>>e[4]>>c>>e[5];
yy=e[1];ym=e[2];
int all=0;
if(e[5]-s[5]<0){
e[4]-=1;
e[5]+=60;
}
all+=e[5]-s[5];
if(e[4]-s[4]<0){
e[3]-=1;
e[4]+=24;
}
all+=(e[4]-s[4])*60;
if(e[3]-s[3]<0){
e[2]-=1;
e[3]+=24;
}
int jw=1;
if(ym==1||ym==3||ym==5||ym==7||ym==8||ym==10||ym==12){
jw=31;
}else if(ym==2){
if(run(yy)){
jw=29;
}else jw=28;
}else jw=30;
all+=(e[2]-s[2])*60*jw;
int k;
if(run(yy)){
k=366;
}else k=365;
all+=(e[1]-s[1])*60*jw*k;
sort(a+1,a+n+1);
int sum=0;
for(int i=1;i<=n;i++){
if(all-a[i]>=0){
sum++;
all-=a[i];
}else break;
}
cout<<sum;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...