Fişierul intrare/ieşire:forus.in, forus.outSursăOJI 2018 clasa a 5-a
AutorFlavius BoianAdăugată defrancuCristian Francu francu
Timp execuţie pe test1.5 secLimită de memorie8192 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Forus (clasa a 5-a)

La ora de educaţie tehnologică a clasei a V-a profesorul Forus, pasionat de matematică, a adus pentru fiecare dintre cei N elevi câte un carton pe care este scris câte un număr natural nenul. Fiecare elev poate folosi cartonul aşa cum l-a primit sau poate să taie o singură dată cartonul între două cifre şi să lipească partea stângă la finalul părţii drepte. Elevul nu are voie să facă o tăietură în faţa cifrei 0, deci niciunul dintre numerele obţinute nu poate să înceapă cu cifra 0. Dintre toate numerele pe care le poate obţine, elevul îl alege pe cel care are număr minim de divizori, iar dacă poate obţine mai multe astfel de numere, îl alege pe cel mai mic dintre ele. La sfârşitul orei, profesorul strânge cartoanele cu numerele alese, în ordinea distribuirii lor.

De exemplu, dacă iniţial elevul primeşte cartonul cu numărul:

atunci el are doar următoarele trei variante de tăiere şi lipire:

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:

  1. 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);
  2. Determină, în ordinea strângerii cartoanelor, numerele preluate de către profesorul Forus la finalul orei.

Date de intrare

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.

Date de ieşire

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.

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.

Exemplu

forus.inforus.outExplicaţ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.
Trebuie sa te autentifici pentru a trimite solutii. Click aici