Submission
Status:
------------------TT
Subtask/Task Score:
0/100
Score: 0
User: Zailagend1
Problemset: Abacus
Language: cpp
Time: 1.093 second
Submitted On: 2026-10-07 13:47:44
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
cin.tie(0)->sync_with_stdio(false);
int a;
cin >> a;
vector<vector<char>> graph(9,vector<char>(8,'*'));
vector<int> num = {1,5,10,50,100,500,1000,5000,10000,50000,100000,500000,1000000,5000000,10000000,50000000};
priority_queue<int> count;
while(a > 0){
for(int i = 0;i<num.size();i++){
if(num[i] > a){
a -= num[i-1];
count.push(num[i-1]);
break;
}
}
}
for(int i = 0;i<8;i++){
graph[3][i] = '-';
}
for(int i = 0;i<8;i++){
graph[2][i] = ' ';
}
for(int i = 0;i<8;i++){
graph[4][i] = ' ';
}
unordered_map<int,int> count2;
for(int j = 0;j<8;j++){
if(j==0){
while(count.size()!=0&&(count.top() == 50000000 || count.top() == 10000000)){
if(count.top() == 50000000){
while(count.size()!=0&&count.top() == 50000000){
graph[2-count2[50000000]][j] = '*';
graph[count2[50000000]][j] = ' ';
count2[50000000]++;
count.pop();
}
}else if(count.top() == 10000000){
while(count.size()!=0&&count.top() == 10000000){
graph[3+count2[10000000]][j] = '*';
graph[4+count2[10000000]][j] = ' ';
count2[10000000]++;
count.pop();
}
}
}
}else if(j == 1){
while(count.size()!=0&&(count.top() == 5000000 || count.top() == 1000000)){
if(count.top() == 5000000){
while(count.size()!=0&&count.top() == 5000000){
graph[2-count2[5000000]][j] = '*';
graph[1-count2[5000000]][j] = ' ';
count2[5000000]++;
count.pop();
}
}else if(count.top() == 1000000){
while(count.size()!=0&&count.top() == 1000000){
graph[3+count2[1000000]][j] = '*';
graph[4+count2[1000000]][j] = ' ';
count2[1000000]++;
count.pop();
}
}
}
}else if(j==2){
while(count.size()!=0&&(count.top() == 500000 || count.top() == 100000)){
if(count.top() == 500000){
while(count.size()!=0&&count.top() == 500000){
graph[2-count2[500000]][j] = '*';
graph[1-count2[500000]][j] = ' ';
count2[500000]++;
count.pop();
}
}else if(count.top() == 100000){
while(count.size()!=0&&count.top() == 100000){
graph[3+count2[100000]][j] = '*';
graph[4+count2[100000]][j] = ' ';
count2[100000]++;
count.pop();
}
}
}
}else if(j==3){
while(count.size()!=0&&(count.top() == 50000 || count.top() == 10000)){
if(count.top() == 50000){
while(count.size()!=0&&count.top() == 50000){
graph[2-count2[50000]][j] = '*';
graph[1-count2[50000]][j] = ' ';
count2[50000]++;
count.pop();
}
}else if(count.top() == 10000){
while(count.size()!=0&&count.top() == 10000){
graph[3+count2[10000]][j] = '*';
graph[4+count2[10000]][j] = ' ';
count2[10000]++;
count.pop();
}
}
}
}else if(j==4){
while(count.size()!=0&&(count.top() == 5000 || count.top() == 1000)){
if(count.top() == 5000){
while(count.size()!=0&&count.top() == 5000){
graph[2-count2[5000]][j] = '*';
graph[1-count2[5000]][j] = ' ';
count2[5000]++;
count.pop();
}
}else if(count.top() == 1000){
while(count.size()!=0&&count.top() == 1000){
graph[3+count2[1000]][j] = '*';
graph[4+count2[1000]][j] = ' ';
count2[1000]++;
count.pop();
}
}
}
}else if(j==5){
while(count.size()!=0&&(count.top() == 500 || count.top() == 100)){
if(count.top() == 500){
while(count.size()!=0&&count.top() == 500){
graph[2-count2[500]][j] = '*';
graph[1-count2[500]][j] = ' ';
count2[500]++;
count.pop();
}
}else if(count.top() == 100){
while(count.size()!=0&&count.top() == 100){
graph[3+count2[100]][j] = '*';
graph[4+count2[100]][j] = ' ';
count2[100]++;
count.pop();
}
}
}
}else if(j==6){
while(count.size()!=0&&(count.top() == 50 || count.top() == 10)){
if(count.top() == 50){
while(count.size()!=0&&count.top() == 50){
graph[2-count2[50]][j] = '*';
graph[1-count2[50]][j] = ' ';
count2[50]++;
count.pop();
}
}else if(count.top() == 10){
while(count.size()!=0&&count.top() == 10){
graph[4+count2[10]][j] = '*';
graph[5+count2[10]][j] = ' ';
count2[10]++;
count.pop();
}
}
}
}else if(j==7){
while(count.size()!=0&&(count.top() == 5 || count.top() == 1)){
if(count.top() == 5){
while(count.size()!=0&&count.top() == 5){
graph[2-count2[5]][j] = '*';
graph[1-count2[5]][j] = ' ';
count2[5]++;
count.pop();
}
}else if(count.top() == 1){
while(count.size()!=0&&count.top() == 1){
graph[4+count2[1]][j] = '*';
graph[5+count2[1]][j] = ' ';
count2[1]++;
count.pop();
}
}
}
}
}
for(int i = 0;i<9;i++){
for(int j = 0;j<8;j++){
cout << graph[i][j];
}
cout << '\n';
}
cout << count2[1];
}