Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: chokun
Problemset: Abacus
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-07 13:34:55
#include <bits/stdc++.h>
using namespace std;
int main() {
// เพิ่มความเร็วในการทำงานของ I/O
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string input;
if (!(cin >> input)) return 0;
// เติม '0' ด้านหน้าให้ครบ 8 หลัก
while (input.length() < 8) {
input = "0" + input;
}
int u[8]; // จำนวนเม็ดบนที่ปัดลง
int v[8]; // จำนวนเม็ดล่างที่ปัดขึ้น
for (int i = 0; i < 8; i++) {
int digit = input[i] - '0';
u[i] = digit / 5;
v[i] = digit % 5;
}
// 1. วาดส่วนบน (Upper Deck) จำนวน 3 แถว
for (int r = 0; r < 3; r++) {
for (int i = 0; i < 8; i++) {
if (r == 2 - u[i]) {
cout << ' ';
} else {
cout << '*'; //
}
if (i < 7) cout << ' '; // ระยะห่างระหว่างหลัก 1 space
}
cout << '\n';
}
// 2. วาดแกนกลาง (Center Bar) จำนวน 17 ตัว
cout << "-----------------\n";
// 3. วาดส่วนล่าง (Lower Deck) จำนวน 6 แถว
for (int r = 0; r < 6; r++) {
for (int i = 0; i < 8; i++) {
if (r == v[i]) {
cout << ' ';
} else {
cout << '*'; //[cite: 3]
}
if (i < 7) cout << ' '; // ระยะห่างระหว่างหลัก 1 space[cite: 3]
}
cout << '\n';
}
return 0;
}