Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: KanemiyaKana

Problemset: Abacus

Language: cpp

Time: 0.002 second

Submitted On: 2026-09-21 17:38:51

#include <iostream>
#include <string>
using namespace std;

string *abacus(int n)
{
    string *abacus_array = new string[10];
    abacus_array[0] = "*";
    abacus_array[3] = "-";
    int i = 1;
    if (n >= 5)
    {
        abacus_array[i] = " ";
        abacus_array[i + 1] = "*";
        i += 3;
        n -= 5;
        int temp = 4 - n;
        if (temp == 0)
        {
            while (i <= 7)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[8] = " ";
            abacus_array[9] = "*";
        }
        if (temp == 1)
        {
            while (i <= 6)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[7] = " ";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (temp == 2)
        {
            while (i <= 5)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[6] = " ";
            abacus_array[7] = "*";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (temp == 3)
        {
            while (i <= 4)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[5] = " ";
            abacus_array[6] = "*";
            abacus_array[7] = "*";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (temp == 4)
        {
            abacus_array[4] = " ";
            i += 1;
            while (i <= 9)
            {
                abacus_array[i] = "*";
                i++;
            }
        }
    }
    else if (n == 0)
    {
        abacus_array[1] = "*";
        abacus_array[2] = " ";
        abacus_array[4] = " ";
        abacus_array[5] = "*";
        abacus_array[6] = "*";
        abacus_array[7] = "*";
        abacus_array[8] = "*";
        abacus_array[9] = "*";
    }
    else
    {
        abacus_array[i] = "*";
        abacus_array[i + 1] = " ";
        i += 3;
        if (n == 4)
        {
            while (i <= 7)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[8] = " ";
            abacus_array[9] = "*";
        }
        if (n == 3)
        {
            while (i <= 6)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[7] = " ";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (n == 2)
        {
            while (i <= 5)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[6] = " ";
            abacus_array[7] = "*";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (n == 1)
        {
            while (i <= 4)
            {
                abacus_array[i] = "*";
                i++;
            }
            abacus_array[5] = " ";
            abacus_array[6] = "*";
            abacus_array[7] = "*";
            abacus_array[8] = "*";
            abacus_array[9] = "*";
        }
        if (n == 0)
        {
            abacus_array[4] = " ";
            i += 1;
            while (i <= 9)
            {
                abacus_array[i] = "*";
                i++;
            }
        }
    }

    return abacus_array;
}

int main()
{
    string input;
    cin >> input;

    for (char c : input)
    {
        if (!isdigit(c))
        {
            return 0;
        }
    }

    int number = stoi(input);

    if (0 > number || number > 99999999)
    {
        return 0;
    }
    string numberstring = to_string(number);
    int length = numberstring.length();
    string set = "";
    if (length < 8)
    {
        int m = 0;
        while (m < 8 - length)
        {
            set += "0 ";
            m++;
        }
    }
    for (int i = 0; i < length; i++)
    {
        set += numberstring[i];
        set += " ";
    }

    string *abacus_arrayC1 = abacus(set[0] - '0');
    string *abacus_arrayC2 = abacus(set[2] - '0');
    string *abacus_arrayC3 = abacus(set[4] - '0');
    string *abacus_arrayC4 = abacus(set[6] - '0');
    string *abacus_arrayC5 = abacus(set[8] - '0');
    string *abacus_arrayC6 = abacus(set[10] - '0');
    string *abacus_arrayC7 = abacus(set[12] - '0');
    string *abacus_arrayC8 = abacus(set[14] - '0');

    for (int i = 0; i < 10; i++)
    {
        if (i == 3)
        {
            cout << "-----------------";
        }
        else
        {
            cout << abacus_arrayC1[i] << " " << abacus_arrayC2[i] << " " << abacus_arrayC3[i] << " " << abacus_arrayC4[i] << " " << abacus_arrayC5[i] << " " << abacus_arrayC6[i] << " " << abacus_arrayC7[i] << " " << abacus_arrayC8[i];
        }
        cout << endl;
    }
}