Submission

Status:

--------------------

Subtask/Task Score:

0/100

Score: 0

User: pxsit

Problemset: Abacus

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-13 12:38:20

#include <stdio.h>
#include <string.h>

int main() {
    char num[9];
    scanf("%s", num);

    int len = strlen(num);
    int digits[8] = {0};

    // แปลงเป็นตัวเลข โดยหลักหน่วยอยู่ขวาสุด
    for (int i = 0; i < len; i++) {
        digits[7 - i] = num[len - 1 - i] - '0';
    }
    
    // พิมพ์เม็ดบน (2 แถว)
    for (int row = 0; row < 3; row++) {
        for (int i = 0; i < 8; i++) {
            int d = digits[i];
            if (d >= 5) {
                // เม็ดบนเลื่อนลง
                if (row == 1)
                    printf("  ");
                else
                    printf("* ");
            } else {
                // เม็ดบนอยู่ข้างบน
                if (row == 2)
                    printf("  ");
                else
                    printf("* ");
            }
        }
        printf("\n");
    }

    // เว้นบรรทัดว่างก่อนเส้นแกนกลาง
    // printf("               \n");
    printf("---------------\n");

    // เม็ดล่าง 5 แถว
    for (int row = 0; row < 6; row++) {
        for (int i = 0; i < 8; i++) {
            int d = digits[i];
            int lowerBeads = (d >= 5) ? d - 5 : d;
            if (row == lowerBeads)
                printf("  ");
            else
                printf("* ");
        }
        printf("\n");
    }

    return 0;
}