super

Ati auzit legenda lui Midas care transforma in aur tot ce atingea? Cum Midas nu avea ce face cu tot aurul, el a inceput sa-l vanda, obtinand pe el sume uriase de bani. Din pacate, numerele romane, folosite pe vremea lui exprimau dificil numere mari, de ordinul milioanelor. De aceea, Midas a fost nevoit sa inventeze numere noi, pe care le-a numit numere super-romane. Numerele super-romane verifica regulile obisnuite de formare a numerelor romane.
Sa consideram simbolurile obisnuite romane si reprezentarea lor zecimala:

I = 1   V = 5    X = 10    L = 50    C = 100    D = 500    M = 1000

Simbolurile I, X, C, M pot fi scrise consecutiv in numar de maxim 3. Celelalte simboluri nu se pot repeta consecutiv. Simbolurile sunt scrise fara spatii intre ele, in ordinea descrescatoare a valorilor:

CCLXVIII= 100+100+50+10+5+1+1+1 = 268

Uneori insa, un simbol I, X, C sau M este plasat inaintea unuia dintre cele doua simboluri de valori imediat superioare (I inainte de V sau X; X inainte de L sau C, etc). In acest caz, valoarea simbolului mai mic este scazuta din valoarea simbolului pe care il preceda:

IV = 5-1 = 4
IX = 10-1 = 9
XL = 50-10 = 40

Numere compuse insa, ca XD, IC sau XM nu sunt corecte, deoarece simbolul din fata are valoare mult prea mica decat a celui care il urmeaza. Astfel:

-  pentru XD (490 scris gresit) se foloseste reprezentarea CDXC
- pentru IC (99 scris gresit) se foloseste XCIX
-  pentru XM (990 scris gresit) se foloseste CMXC

Din nefericire, numere mari, cum ar fi 10000 s-ar reprezenta MMMMMMMMMM, deci foarte dificil. De aceea tabela numerelor romane se extinde:

 I = 1   L = 50    M = 1000   R = 50000    U = 1000000    N = 50000000
 V = 5   C = 100   P = 5000   S = 100000   B = 5000000    Y = 100000000
 X = 10  D = 500   Q = 10000  T = 500000   W = 10000000   Z = 500000000

In acest fel, pastrand regulile obisnuite de scriere, se pot reprezenta si numere de ordinul sutelor de milioane.

Cerinta
Scrieti un program care citeste un numar natural dintr-un fisier si il converteste in numarul echivalent in forma super-romana.

Date de intrare
Pe prima linie a fisierului de intrare super.in se gaseste numarul natural n.

Date de iesire
Pe prima linie a fisierului de iesire super.out se gaseste numarul n in forma super-romana.

Restrictii

Exemple

super.in

super.out super.in

super.out

18

XVIII 12345678

WUUSSSQRPDCLXXVIII

Timp maxim de executie/test: 0.1 secunde

prof. Marinel Serban
Liceul de Informatica “Gr. C. Moisil” Iasi
e-mail: marinel_serban@yahoo.com