Orice număr natural nenul se poate scrie în mod unic ca o sumă de puterile ale lui 2
care nu se repetă. Exemplu: 77
= 2
0
+ 2
2
+ 2
3
+ 2
6
.
Primele 16
puteri ale lui 2
se reprezintă prin litere ale alfabetului englez, după cum urmează: a = 1
, b = 2
, c = 4
, d = 8
, e = 16
, f = 32
, g = 64
, h = 128
, i = 256
, j = 512
, k = 1024
, l = 2048
, m = 4096
, n = 8192
, o = 16384
, p = 32768
.
Astfel, orice număr din intervalul [1, 2
16
]
poate fi codificat ca o combinație unică a acestor litere, aranjate în ordine alfabetică, în care orice literă apare cel mult o singură dată, astfel încât suma valorilor acestor litere să fie egală cu valoarea numărului (77 = acdg
).
Cerința
Să se scrie un program C/C++
care citește două șiruri de caractere ce reprezintă două numere naturale codificate după regula de mai sus, program care afișează un șir de caractere ce reprezintă suma celor două numere.
Date de intrare
Fișierul de intrare sumpow2.in
conține pe prima linie două șiruri de caractere despărțite printr-un singur spațiu, șiruri de caractere ce reprezintă codificarea celor două numere.
Date de ieșire
Fișierul de ieșire sumpow2.out
va conține pe prima linie un șir de caractere ce reprezintă codificarea numărului calculat ca fiind suma celor două numere.
Restricții și precizări
- cele două numerele date precum și suma lor nu va depăși valoarea
2
16
.
Exemplu:
sumpow2.in
acdg ac
sumpow2.out
beg
Important!
Programul scris trebuie să calculeze șirul de ieșire fără a transforma șirurile inițiale în numere!