大意略。
熟悉输入输出。
/* ID:g0feng1 LANG:C++ TASK:friday */ #include <iostream> #include <fstream> #include <cstdlib> #include <cstdio> #include <string> #include <cstring> #include <cmath> #include <vector> #include <algorithm> using namespace std; int month[2][14] = { {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 ans[11]; ifstream fin("friday.in"); ofstream fout("friday.out"); int n; int is_leapYear(int n) { if(((n % 4 == 0) && (n % 100 != 0)) || n % 400 == 0) return 1; return 0; } void init() { memset(ans, 0, sizeof(ans)); } void read_case() { init(); fin>>n; } void cal() { int days = 0, f = 0; for(int year = 1900; year <= 1900+n-1; year++) { f = is_leapYear(year)? 1 : 0; for(int i = 1; i <= 12; i++) { for(int day = 1; day <= month[f][i]; day++) { days++; if(day == 13) { ans[days%7]++; } } } } } void solve() { read_case(); cal(); fout<<ans[6]<<" "<<ans[0]; for(int i = 1; i <= 5; i++) fout<<" "<<ans[i]; fout<<endl; } int main() { solve(); return 0; }