Nu aveti permisiuni pentru a descarca fisierul grader_eval.cpp
Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2007-04-18 20:47:59.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:coduri.in, coduri.outSursăONI 2007, clasa 9
AutorRoxana TamplaruAdăugată deDITzoneCAdrian Diaconu DITzoneC
Timp execuţie pe test0.1 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Coduri

Intorcandu-se de la scoala in ziua in care a aflat cum se face inmultirea numerelor, Gigel a auzit la televizor urmatoarea afirmatie: „Pentru a face avere, nu trebuie sa aduni bani in viata, ci trebuie sa-i inmultesti”.

Toate acestea l-au pus pe ganduri, asa ca s-a hotarat sa inventeze propriul „sistem de codificare” pentru numere reale mai mari decat 0 care sa aiba urmatoarele proprietati:
fiecare numar va fi codificat sub forma unui sir de valori intregi (pozitive si/ sau negative)
daca un numar real x are codul cx si un numar real y are codul cy , atunci numarul real rezultat prin inmultirea lui x si y trebuie sa aiba codul obtinut prin „adunarea” codurilor cx si cy .
daca un numar real x se poate scrie ca produs de numere y1, y2, ..., yk, atunci codul lui x se obtine prin „adunarea” codurilor numerelor y1, y2, ..., yk.
Consideram un cod c1 format din n1 valori .. a1 si un cod c2 format din n2 valori ..b1 , atunci codul c3 obtinut prin „adunarea” codurilor c1 si c2 va avea n3 valori .. d1 , cu proprietatile urmatoare:
n3 este maximul dintre n1 si n2
di =

Cerinta

Dandu-se N numere reale mai mari strict decat 0, sa se scrie codificarea acestora in sistemul inventat de Gigel.

Date de intrare

Fisierul de iesire coduri.in va contine:

  • pe prima linie din fisier se afla numarul N de numere reale
  • pe urmatoarele N linii cele N numere reale, fiecare pe cate o linie.

Date de iesire

Fisierul de iesire coduri.out va contine N linii: pe linia i (i intre 1 si N) : numarul de valori folosite pentru codificarea numarului cu indicele i din fisierul de intrare, urmat de un spatiu si apoi valorile ce alcatuiesc codul numarului, separate doua cate doua printr-un singur spatiu.

Restrictii

  • 2 ≤ N ≤ 18
  • Separatorul intre partea intreaga si partea zecimala este virgula.
  • Orice numar are dupa virgula cel mult 5 cifre.
  • Valorile din codurile numerelor din fisierele de test trebuie sa fie cuprinse in intervalul [-106, 106].
  • Partea intreaga a fiecarui numar real este o valoare mai mica sau egala cu 20000.
  • Toate numerele din fisierele de test sunt strict pozitive si distincte doua cate doua.
  • Numarul maxim de valori utilizat pentru codificarea unui numar este 2500.
  • Daca exista mai multe solutii de codificare, se va afisa una singura.
  • Nu trebuie sa existe doua numere diferite cu aceeasi codificare.
  • 40% din teste vor contine numai numere intregi, 30% din teste vor contine numere intregi si numere reale fara perioada si 30% din teste vor contine numere intregi si numere reale cu si fara perioada.

Exemplu

coduri.incoduri.out
8
10
2
5
0,3
7
2,1
1,(7)
1,2(34)
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

Explicatie

10=2*5, iar suma codurilor pentru 2 si 5, determina codul lui 10
2,1=7*0,3, iar suma codurilor pentru 7 si 0,3 determina codul lui 2,1

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content