题目链接:http://train.usaco.org/usacoprob2?a=RYYdrrzDGxL&S=friday
因为只有400年,直接模拟
但是请注意是从1900年开始!
同时usaco严格限制输出长度
/*
ID: nflsjxc1
TASK: friday
LANG: C++
*/
#include<bits/stdc++.h>
using namespace std;
int n;
int cal[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int ans[8];
int main()
{
freopen("friday.in","r",stdin);
freopen("friday.out","w",stdout);
ios::sync_with_stdio(0);
//cin.tie(0);
//1900!!!!!!!!!!!!!!!!!!
cin>>n;n+=1900;
int year=1900,month=1,day=1,date=1;
while(1)
{
if(year%4==0&&year%100!=0||year%400==0)
{
cal[2]=29;
}
else
{
cal[2]=28;
}
day++;date++;date%=7;
if(day==13)
{
ans[date]++;
// if(date==6)cout<<year<<' '<<month<<' '<<day<<'\n';
}
if(year==n-1&&month==12&&day==31)break;
if(month>12)
{
month=1;
year++;
}
if(day-cal[month]>0)
{
day-=cal[month];
month++;
}
}
for(int i=6;i<=11;i++)
{
cout<<ans[i%7]<<' ';
}cout<<ans[12%7]<<'\n';//usaco严格限制输出长度
return 0;
}