Submission

Status:

P-P-PP-P-P

Subtask/Task Score:

60/100

Score: 60

User: chokun

Problemset: ลูกเต๋า (2566)

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-06 14:50:07

#include <bits/stdc++.h>
using namespace std;

int main() {
    // กำหนดลวดลายของหน้าลูกเต๋า 1 ถึง 6 (ขนาด 3x3 ช่อง)
    // ดัชนี 0 (กรณีไม่ใช่เลข 1-6): แถว 1 และ 2 เป็นช่องว่าง ส่วนแถว 3 ล่างสุดเป็น "___"
    vector<vector<string>> dice = {
        {"   ", "   ", "___"}, // หน้าว่าง กรณีไม่ใช่เลข 1-6 (ขีดล่างเฉพาะบรรทัดล่างสุด)
        {"   ", " * ", "   "}, // หน้า 1
        {"*  ", "   ", "  *"}, // หน้า 2
        {"*  ", " * ", "  *"}, // หน้า 3
        {"* *", "   ", "* *"}, // หน้า 4
        {"* *", " * ", "* *"}, // หน้า 5
        {"* *", "* *", "* *"}  // หน้า 6
    };

    string input;
    cin >> input;

    // เงื่อนไขเพิ่มเติม: ถ้าอินพุตยาวมากกว่า 3 อักขระ ให้แสดง ___ แล้วจบโปรแกรม
    if (input.length() > 3) {
        //cout << "___" << endl;
        return 0;
    }

    // กรณีอินพุตสั้นกว่า 3 อักขระ ให้เติมเลข '0' ให้ครบ 3 หลักเพื่อป้องกันบั๊ก
    while (input.length() < 3) {
        input += "0";
    }

    // แยกตัวเลขจากอินพุตแต่ละหลัก (ตำแหน่งดัชนี 0, 1, 2)
    int d1 = input[0] - '0';
    int d2 = input[1] - '0';
    int d3 = input[2] - '0';

    // แปลงค่าให้เป็น 0 (หน้าขีดล่าง) หากตัวเลขไม่อยู่ในช่วง 1 ถึง 6
    if (d1 < 1 || d1 > 6) d1 = 0;
    if (d2 < 1 || d2 > 6) d2 = 0;
    if (d3 < 1 || d3 > 6) d3 = 0;

    // วนลูปพิมพ์ทีละแถว (มีทั้งหมด 3 แถว)
    for (int row = 0; row < 3; row++) {
        // พิมพ์แถวของลูกที่ 1 + เว้นวรรค + ลูกที่ 2 + เว้นวรรค + ลูกที่ 3
        cout << dice[d1][row] << " " 
             << dice[d2][row] << " " 
             << dice[d3][row] << endl;
    }
}