문제
링크
풀이
#include <iostream>
using namespace std;
int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
inline bool leap(int y) {
return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
}
void solve(void) {
int y; cin >> y;
if (leap(y)) days[2] = 29;
int d = 0;
for (int i=1970; i<y; i++) {
d = (d + 365 + leap(i)) % 7;
}
d = (d + 3) % 7 + 1;
int ans = 0;
for (int i=1; i<=12; i++) for (int j=1; j<=days[i]; j++) {
if (d == 1 || j == 1) ans++;
d = d % 7 + 1;
}
cout << ans;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}