Întorcându-se de la şcoală în ziua în care a aflat cum se face înmulţirea numerelor, Gigel a auzit la televizor următoarea afirmaţie: „Pentru a face avere, nu trebuie să aduni bani în viaţă, ci trebuie să-i înmulţeşti”.
Toate acestea l-au pus pe gânduri, aşa că s-a hotărât să inventeze propriul „sistem de codificare” pentru numere reale mai mari decât care să aibă următoarele proprietăţi:
- fiecare număr va fi codificat sub forma unui şir de valori întregi (pozitive şi/ sau negative)
- dacă un număr real are codul şi un număr real are codul , atunci numărul real rezultat prin înmulţirea lui şi trebuie să aibă codul obţinut prin „adunarea” codurilor şi
- dacă un număr real se poate scrie ca produs de numere , atunci codul lui se obţine prin „adunarea” codurilor numerelor
- Considerăm un cod format din valori şi un cod format din valori , atunci codul obţinut prin „adunarea” codurilor şi va avea valori , cu proprietăţile următoare:
- este maximul dintre şi
Cerință
Dându-se numere reale mai mari strict decât , să se scrie codificarea acestora în sistemul inventat de Gigel.
Date de intrare
Fişierul de ieşire coduri.in
va conţine:
- pe prima linie din fişier se află numărul de numere reale
- pe următoarele linii cele numere reale, fiecare pe câte o linie
Date de ieșire
Fişierul de ieşire coduri.out
va conţine linii:
Pe linia ( între şi ) : numărul de valori folosite pentru codificarea numărului cu indicele din fişierul de intrare, urmat de un spaţiu şi apoi valorile ce alcătuiesc codul numărului, separate două câte două printr-un singur spaţiu.
Restricții și precizări
- Separatorul între partea întreagă şi partea zecimală este virgula
- Orice număr are după virgulă cel mult cifre
- Valorile din codurile numerelor din fişierele de test trebuie să fie cuprinse în intervalul
- Partea întreagă a fiecărui număr real este o valoare mai mică sau egală cu
- Toate numerele din fişierele de test sunt strict pozitive şi distincte două câte două
- Numărul maxim de valori utilizat pentru codificarea unui număr este
- Dacă există mai multe soluţii de codificare, se va afişa una singură
- Nu trebuie să existe două numere diferite cu aceeaşi codificare
- din teste vor conţine numai numere întregi, din teste vor conţine numere întregi şi numere reale fără perioadă şi din teste vor conţine numere întregi şi numere reale cu şi fără perioadă
Exemplu
coduri.in
8
10
2
5
0,3
7
2,1
1,(7)
1,2(34)
coduri.out
2 1 1
3 -1 0 1
3 1 1 0
3 2 1 0
3 -1 2 1
3 1 3 1
2 1 11
2 1 2
Explicație
, iar suma codurilor pentru şi , determină codul lui
, iar suma codurilor pentru şi determină codul lui