De exemplu, dacă inițial elevul primește cartonul cu numărul:
!problema/forus?forus-1.jpg!
atunci el are doar următoarele trei variante de tăiere și lipire:
!problema/forus?forus-2.jpg!
h2. Cerințe
Scrieți un program care citește numărul natural *N* și cele *N* numere scrise pe cartoanele aduse de profesorul Forus, apoi rezolvă următoarele două cerințe:
# Determină numărul de cartoane pe care elevii au voie să le taie de oriunde (NU conțin cifre în fața cărora nu au voie să taie);
# Determină, în ordinea strângerii cartoanelor, numerele preluate de către profesorul Forus la finalul orei.
h2. Date de intrare
Fișierul de intrare $forus.in$ ...
Fișierul de intrare $forus.in$ conține pe prima linie un număr natural *C* reprezentând cerința din problemă care trebuie rezolvată (1 sau 2). A doua linie din fișier conține un număr natural *N*, reprezentând numărul de elevi, iar a treia linie din fișier conține *N* numere naturale, separate prin câte un spațiu, reprezentând numerele scrise pe cartoanele aduse de profesor, în ordinea distribuirii lor.
h2. Date de ieșire
În fișierul de ieșire $forus.out$ ...
Dacă [*C*]=1, fișierul de ieșire forus.out conține pe prima linie un număr natural reprezentând răspunsul la cerința 1.
Dacă [*C*]=2, fișierul de ieșire forus.out conține pe prima linie *N* numere naturale, separate prin câte un spațiu, reprezentând răspunsul la cerința 2; numerele sunt scrise în ordinea în care au fost strânse.
h2. Restricții
* $... ≤ ... ≤ ...$
* 2 ≤ *N* ≤ 30
* 1 ≤ numărul natural de pe carton < 1 000 000 000
* Pentru rezolvarea corectă a cerinței 1 se acordă 20 de puncte; pentru rezolvarea corectă a cerinței 2 se acordă 70 de puncte. Se acordă 10 puncte din oficiu.
h2. Exemplu
table(example).
|_. forus.in |_. forus.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
table(example).
|_. forus.in |_. forus.out |_. Explicații |
| 1
5
1234 25082 543 52 150
| 3
| Cerința este 1. Sunt 3 numere care pot fi tăiate de
oriunde: 1234, 543, 52.
|
| 2
5
51 1234 50822 345 150
| 15 2341 25082 453 501
| Cerința este 2. Pentru cartonul cu numărul 51 se pot
obține numerele 15 și 51. Ambele numere au câte 4
divizori. Astfel, se va alege numărul 15, fiind cel mai
mic. Pentru cartonul cu numărul 1234 (4 divizori) pot
fi obținute numerele: 2341 (2 divizori), 3412 (6
divizori) și 4123 (8 divizori). Se va alege numărul
2341 pentru că are numărul minim de divizori. Analog
se va proceda pentru toate celelalte numere din șir.
|
h3. Explicație
...
== include(page="template/taskfooter" task_id="forus") ==