3214. 节日 - AcWing题库
#include<bits/stdc++.h>
using namespace std;
const int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int is_leap(int y)
{
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
return 1;
return 0;
}
int get_days(int y,int m)
{
if (m == 2)return months[m] + is_leap(y);
return months[m];
}
int a, b, c, ya, y2;
int main()
{
cin >> a >> b >> c >> ya >> y2;
int days = 0;
for (int y = 1850; y<= y2; y++)
{
for (int m = 1; m<= 12; m++)
{
if (y >= ya && m == a)
{
int w = (1 + days) % 7;
int cnt = 0;
for (int d = 1; d <= get_days(y, m); d++)
{
if (w == c - 1)
cnt++;
if(cnt==b)
{
printf("%04d/%02d/%02d\n",y,m,d);
break;
}
w = (w + 1) % 7;
}
if (cnt < b)
{
puts("none");
}
}
days += get_days(y,m);
}
}
return 0;
}
