问题标题: 酷町堂:5239 刷题备考 数据有毒?(100豆)

0
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;
}

最后一个测试点死活过不掉,洛谷上能过


0
我要回答