Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: mik
Problemset: ปฏิทินวันแม่
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-10 18:29:38
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// จำนวนวันในแต่ละเดือน (เดือน 1 ถึง 12)
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// สร้างตารางผลรวมสะสมของวันตั้งแต่เดือนมกราคม
int pref[13] = {0};
for (int i = 1; i <= 12; i++) {
pref[i] = pref[i - 1] + days_in_month[i];
}
int m, d;
if (!(cin >> m >> d)) return 0;
// หาลำดับวันที่ของวันที่ 1 เดือน m นับจากวันแรกของปี
int day_m = pref[m - 1] + 1;
// หาลำดับวันที่ของวันที่ 12 สิงหาคม นับจากวันแรกของปี (สิงหาคมคือเดือนที่ 8)
int day_aug12 = pref[7] + 12;
// หาระยะห่างของวันทั้งหมด
int delta = day_aug12 - day_m;
// คำนวณหาว่าตรงกับวันอะไรในสัปดาห์ (1-7)
int ans = (d - 1 + delta) % 7;
while (ans < 0) ans += 7; // ป้องกันกรณีติดลบ (กรณีเดือนอยู่หลังสิงหาคม)
ans += 1;
cout << ans << "\n";
return 0;
}