社区讨论

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 条回复,欢迎继续交流。

正在加载回复...