help

P1167 刷题

a_study_xxs @ 2023-04-05 09:33:29


#include<bits/stdc++.h>
using namespace std;
int a[1005] , b[1005] , c[1005] ;
int i ;
long long t ;
int month[13] = {0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} ;
bool rnpd(int x){
    if(x % 400 == 0 && x % 100 == 0){
        return true ;
    }else if(x % 4 == 0){
        return true ;
    }else{
        return false ;
    }
}
int n , sum ;
int main(){
    cin >> n ;
    for(int i = 1 ; i <= n ; i ++ ){
        cin >> c[i] ;
    }
    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]);
    sort(c + 1 , c + n + 1);
    while((a[1] != b[1]) && (a[2] != b[2]) && (a[3] != b[3]) && (a[4] != b[4]) && (a[5] != b[5]) ){
        t ++ ;
        month[2] = (rnpd(a[1]) ? 29 : 28);
        if(a[2] == 12){
            a[2] = 1 ;
            a[1] ++ ;
        }
        if(a[3] == month[a[2]]){
            a[3] = month[a[2] + 1] ;
            a[2] ++ ;
        }
        if(a[4] == 24){
            a[3] ++ ;
            a[4] = 0 ;
        }
        a[5] ++ ; 
        if(a[5] == 60){
            a[4] ++ ;
            a[5] = 0 ; 
        }
    }
    for(int i = 1 ; i <= n ; i ++ ){
        if(c[i] != 0){
            sum ++ ;
            t -= c[i] ;
        }
        if(t < c[i]){
            break ;         
        }
    }
    cout << sum ;
    return 0;
} 

|