usaco3

/*
ID:marco
LANG:C++
TASK:friday
*/
#include<bits/stdc++.h>
#define for(i,k,n) for (int i = k; i <= n; i++)

using namespace std;

const
int MAXN = 110,
DAYS[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int
n, ans[MAXN];

int getyear(int a)
{
if ((a % 400 == 0)||((a % 4 == 0)&&(a % 100 != 0)))
return 1;
return 0;
}

int main()
{
int year, day = 13;
freopen("friday.in","r",stdin);
freopen("friday.out","w",stdout);
cin >> n;
ans[6] = 1;
for(i,1,n)
{
year = 1900 + i - 1;
for(j,1,12)
{
day += DAYS[getyear(year)][j];
ans[day % 7]++;
}
}
ans[day % 7]--;
cout << ans[6];
for (i,0,5)
cout << " " << ans[i];
cout << endl;
}

原文地址:https://www.cnblogs.com/D-AngeloRussell/p/6516208.html