/* ID:linyvxi1 LANG:C++ TASK:friday */ #include <stdio.h> int day_map[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int final[8]={0}; bool leap_year(int n) { if(n%400==0||(n%4==0&&n%100!=0)) return true; return false; } int cal(int year) { int i,days=0; for(i=1900;i<year;i++){ days+=leap_year(i)?366:365; } return days; } int cal2(int day,int month) { int j,tot=day; for(j=1;j<month;j++) tot+=day_map[j]; tot+=13; return tot; } int main() { FILE* fin=fopen("friday.in","r"); FILE* fout=fopen("friday.out","w"); int N; fscanf(fin,"%d",&N); int i,j,k; for(i=0;i<=N-1;i++){ //先计算到这年1月1号有多少天 // for(j=0;j<7;j++) // final[j]=0; int day=cal(1900+i); if(leap_year(1900+i)) day_map[2]=29; else day_map[2]=28; for(j=1;j<=12;j++){ int total=cal2(day,j); if(total%7==0) final[7]++; else final[total%7]++; } } fprintf(fout,"%d %d ",final[6],final[7]); for(i=1;i<=5;i++){ fprintf(fout,"%d",final[i]); if(i==5) //putchar('\n'); fprintf(fout,"\n"); else fprintf(fout," "); } }