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;
}