题目

代码
#include <bits/stdc++.h>
using namespace std;
int a, b, c;
int yy1, yy2;
int days;
int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_run(int y, int m)
{
if(m != 2) return false;
if(y % 400 == 0) return true;
if(y % 4 == 0 && y % 100) return true;
return false;
}
int main()
{
scanf("%d%d%d", &a, &b, &c);
scanf("%d%d", &yy1, &yy2);
for(int y = 1850; y <= yy2; y++)
for(int m = 1; m <= 12; m++)
{
int maxd = mon[m] + is_run(y, m);
if(y >= yy1 && m == a)
{
int w = (1 + days) % 7;
int cnt = 0;
for(int d = 1; d <= maxd; d++)
{
if(w == c - 1) cnt++;
if(cnt == b)
{
printf("%d/%02d/%02d\n", y, m, d);
break;
}
w = (w + 1) % 7;
}
if(cnt < b) puts("none");
}
days += maxd;
}
return 0;
}