hdu 6112

来源:互联网 发布:免费的一级域名 编辑:程序博客网 时间:2024/06/07 01:54

 题目传送门:

思路:三种情况

2月29之前

2月29

2月29之后


ac代码:

#include<stdio.h>#include<bits/stdc++.h>using namespace std;int ph(int x){    if(x%400==0||(x%4==0&&x%100!=0))    return 1;    return 0;}int main(){    int n;    cin>>n;    while(n--)    {        int x,y,z,flag=0;        scanf("%d-%d-%d",&x,&y,&z);        if(y<2||(y==2&&z<=28))        flag=1;        long long sum=0;        int k;        for(int i=x;;i++)        {           if(flag==1)           {               if(ph(i))               sum+=366;               else               sum+=365;           }           else           {               if(ph(i+1))               sum+=366;               else               sum+=365;           }           if(sum%7==0)           {               if(flag==1||!(y==2&&z==29))               {k=i;               break;}               else               {                   if(ph(i+1))                   {                       k=i;break;                   }               }           }        }        cout<<k+1<<endl;    }    return 0;}


原创粉丝点击