CCF 节日

来源:互联网 发布:百度大数据选股 编辑:程序博客网 时间:2024/04/30 18:14

AC代码:

#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <cstring>#include <climits>#include <cmath>#include <cctype>const int inf = 0x3f3f3f3f;//1061109567typedef long long LL;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1using namespace std;int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};bool judge(int year){    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)        return true;    return false;}int main(){    int a,b,c,y1,y2;    scanf("%d%d%d%d%d",&a,&b,&c,&y1,&y2);    for(int i=y1; i<=y2; i++)    {        int sum = 0;        for(int j=1850; j<=i-1; j++)        {            if(judge(j))                sum += 366;            else                sum += 365;        }        if(judge(i))            month[2]++;        for(int j=1; j<a; j++)        {            sum += month[j];        }        int sum2 = 0;        int j;        for(j=1; j<=month[a]; j++)        {            int x = (sum + j - 1) % 7;//这里是隔的天数必须减1            //能整除是星期二,整除余1是星期三,依次类推            if(x == 6)                x = 1;            else                x += 2;            if(x == c)            {                sum2++;            }            if(sum2 == b)                break;        }        if(j > month[a])            printf("none\n");        else            printf("%02d/%02d/%02d\n",i,a,j);        month[2] = 28;//有可能第二个月份可能变了,重置一下    }    return 0;}


0 0
原创粉丝点击