Diferente pentru problema/coduri intre reviziile #14 si #1

Diferente intre titluri:

Coduri
coduri

Diferente intre continut:

== include(page="template/taskheader" task_id="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 {$c{~x~}$} si un numar real $y$ are codul {$c{~y~}$}, atunci numarul real rezultat prin inmultirea lui $x$ si $y$ trebuie sa aiba codul obtinut prin "adunarea" codurilor {$c{~x~}$} si {$c{~y~}$}
* daca un numar real $x$ se poate scrie ca produs de numere {$y{~1~}, y{~2~}, ..., y{~k~}$}, atunci codul lui $x$ se obtine prin "adunarea" codurilor numerelor {$y{~1~}, y{~2~}, ..., y{~k~}$}.
 
Consideram un cod $c{~1~}$ format din $n{~1~}$ valori  {$a{~n{~1~}~}$} ... $a{~1~}$ si un cod {$c{~2~}$} format din {$n{~2~}$} valori {$b{~n{~2~}~}$}...{$b{~1~}$}, atunci codul {$c{~3~}$} obtinut prin "adunarea" codurilor {$c{~1~}$} si {$c{~2~}$} va avea {$n{~3~}$} valori {$d{~n{~3~}~}$}.. {$d{~1~}$}, cu proprietatile urmatoare:
 
* {$n{~3~}$} este maximul dintre {$n{~1~}$} si {$n{~2~}$}
* {$d{~i~}$} =
** {$a{~i~} + b{~i~}$}, pentru {$1 ≤ i ≤ minim(n{~1~},n{~2~})$}
** {$a{~i~}$}, pentru {$n{~2~}$} {$+$} {$1 ≤ i ≤$} {$n{~1~}$}, daca $minim(n{~1~},n{~2~}) = n{~2~}$
** {$b{~i~}$}, pentru {$n{~1~}$} {$+$} {$1 ≤ i ≤$} {$n{~2~}$}, daca $minim(n{~1~},n{~2~}) = n{~1~}$
 
h2. Cerinta
 
Dandu-se $N$ numere reale mai mari strict decat {$0$}, sa se scrie codificarea acestora in sistemul inventat de Gigel.
Poveste si cerinta...
h2. 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.
...
h2. 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.
...
h2. 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 [{$-10^6^, 10^6^$}].
* 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.
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. coduri.in |_. coduri.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
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
|
h3. 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$}
...
== include(page="template/taskfooter" task_id="coduri") ==
 
== SmfTopic(topic_id="...") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

1830