CodeForces 363A - Soroban

来源:互联网 发布:smtp协议端口 编辑:程序博客网 时间:2024/06/06 08:36

You know that Japan is the country with almost the largest 'electronicdevices per person' ratio. So you might be quite surprised to find out that theprimary school in Japan teaches to count using a Soroban — an abacus developed in Japan. This phenomenon has itsreasons, of course, but we are not going to speak about them. Let's have a lookat the Soroban's construction.


Soroban consists of some number of rods, each rod contains five beads.We will assume that the rods are horizontal lines. One bead on each rod (theleftmost one) is divided from the others by a bar (the reckoning bar). Thissingle bead is called go-dama and four others are ichi-damas. Each rod is responsible for representing a single digit from 0 to 9.We can obtain the value of a digit by following simple algorithm:

·        Set thevalue of a digit equal to 0.

·        If thego-dama is shifted to the right, add 5.

·        Add thenumber of ichi-damas shifted to the left.

Thus, the upper rod on the picture shows digit 0, the middle one showsdigit 2 and the lower one shows 7. We will consider the top rod to representthe last decimal digit of a number, so the picture shows number 720.

Write the program that prints the way Soroban shows the given number n.

Input

The first line contains a single integer n (0 ≤ n < 109).

Output

Print the description of the decimal digits of number n from the last one to thefirst one (as mentioned on the picture in the statement), one per line. Print the beads as large English letters 'O', rod piecesas character '-' and the reckoning bar as '|'. Print as many rods, as manydigits are in the decimal representation of number n without leading zeroes. We can assume that number 0 has no leadingzeroes.

Sample test(s)

input

2

output

O-|OO-OO

input

13

output

O-|OOO-O
O-|O-OOO

input

720

output

O-|-OOOO
O-|OO-OO
-O|OO-OO

 

解题思路:

模拟


代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;void output(int x){if (x<5){printf("O-");}elseprintf("-O");printf("|");x %= 5;int i;for (i = 0; i<x; i++)printf("O");printf("-");for (i = 0; i<4 - x; i++)printf("O");printf("\n");}int main(){int n;char s[15];while (scanf("%s", s) != EOF){int i, len = strlen(s);for (i = len - 1; i >= 0; i--)output(s[i] - '0');}return 0;}


0 0