HDOJ_1201_18岁生日

AC代码:

#include <iostream>
#include <cstdio>
using namespace std;

int a[19];

int hanshu(long long year)
{
    if((year%4==0&&year%100!=0)||year%400==0)
        return 1;
    else
        return 0;
}

int main(void)
{
    freopen("in.txt","r",stdin);
    long long n,year;
    int month,day;
    scanf("%lld",&n);
    while(n--)
    {
        int i=0;
        int sum=0;
        scanf("%lld-%d-%d",&year,&month,&day);
        
        for(int j=0;j<=18;j++)
            a[j]=hanshu(year+j);
            
        if(a[0]==1&&a[18]==0&&month==2&&day==29)
        {
            printf("-1\n");
            continue;
        }
        
        sum+=18*365;
        
        for(int j=1;j<=17;j++)
            if(a[j])
                sum+=1;
    
        if(a[0]==1)
        {
            if((month==2&&day<=28)||month<2)
                sum++;    
        } 
        else
        {
            if(a[18]==1)
            {
                if(month>2)
                    sum++;
            }
        }
        printf("%lld\n",sum);
    }
    
    
    fclose(stdin); 
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/phaLQ/p/10042112.html