Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: SRW
Problemset: ปฏิทินวันแม่
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-12 11:55:35
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int m, d;
cin >> m >> d;
// จำนวนวันในแต่ละเดือน (index 0 = ม.ค. ถึง index 11 = ธ.ค.)
int arr[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// total_diff คือระยะห่างจำนวนวันจาก "วันที่ 1 เดือน m" ไปยัง "วันที่ 12 ส.ค."
int total_diff = 0;
if (m <= 8) {
// นับไปข้างหน้า: บวกจำนวนวันของเดือน m ถึง เดือน 7 (ก.ค.)
for (int i = m - 1; i < 7; i++) {
total_diff += arr[i];
}
// บวกอีก 11 วัน เพื่อขยับจากวันที่ 1 ส.ค. ไปวันที่ 12 ส.ค.
total_diff += 11;
}
else {
// นับย้อนหลัง: ลบจำนวนวันของเดือน 8 (ส.ค.) ถึง เดือน m-1
for (int i = 7; i < m - 1; i++) {
total_diff -= arr[i];
}
// บวก 11 วันของเดือนสิงหาคม (เพราะขยับจากวันที่ 1 ส.ค. ไปวันที่ 12 ส.ค.)
total_diff += 11;
}
// คำนวณหาลำดับวันในสัปดาห์ (1-7)
// ใช้สูตรป้องกันค่าติดลบจากการ modulo ใน C++
int shift = (total_diff % 7 + 7) % 7;
int ans = (d - 1 + shift) % 7 + 1;
cout << ans << "\n";
return 0;
}