Fişierul intrare/ieşire:cod.in, cod.outSursăONI 2016 clasa a 6-a
AutorAutor NecunoscutAdăugată dePalamidaUsturoiNicola Victor Teodor PalamidaUsturoi
Timp execuţie pe test1.3 secLimită de memorie4096 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Cod (clasa a 6-a)

Ionel şi Georgel sunt colegi de clasă şi doresc să facă schimb de fişiere prin email. Fiecare dintre ei îşi arhivează fişierele cu câte o parolă. Fiecare copil îşi construieşte parola pe baza unui şir format din N numere naturale.

Numerele din şir care se folosesc efectiv pentru construirea parolelor sunt doar cele divizibile cu numerele din mulţimea {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}. Copiii numără câte din valorile din şir sunt divizibile cu fiecare din aceste numere.

Parola folosită de Ionel se obţine prin însumarea numărului de valori din şir care sunt divizibile cu numerele din mulţimea {2, 3, 4, 5, 6, 7, 8, 9}. Parola folosită de Georgel se obţine prin însumarea numărului de valori din şir care sunt divizibile cu numerele din mulţimea {10, 11, 12, 13, 14, 15}.

Cerinţă

Scrieţi un program care citeşte şirul celor N numere şi determină:

  1. Câte numere din şir nu se vor folosi în construirea parolelor celor doi copii.
  2. Parola construită de Ionel.
  3. Parola construită de Georgel.

Date de intrare

Fişierul de intrare cod.in conţine pe prima linie un număr natural P care reprezintă cerinta şi poate fi 1, 2 sau 3. Pe a doua linie numărul natural N, iar pe a treia linie, N numere naturale separate prin câte un caracter '#'.

Date de ieşire

În fişierul de ieşire cod.out se află rezultatul în funcţie de cerinţă.

Dacă valoarea lui P este 1, se va rezolva numai punctul 1) din cerinţe. În acest caz, fişierul de ieşire cod.out va conţine pe prima linie un număr natural nenul reprezentând câte numere din şir nu s-au folosit la construirea parolelor sau 0 dacă nu există astfel de numere.

Dacă valoarea lui P este 2, se va rezolva numai punctul 2) din cerinţe. În acest caz, fişierul de ieşire cod.out va conţine pe prima linie un număr natural reprezentând parola construită de Ionel.

Dacă valoarea lui P este 3, se va rezolva numai punctul 3) din cerinţe. În acest caz, fişierul de ieşire cod.out va conţine pe prima linie un număr natural reprezentând parola construită de Georgel.

Restricţii

  • 0 < N ≤ 100 000
  • 2 ≤ numărul de cifre ale unui număr ≤ 100
  • Se garantează că toate parolele pe care copiii le vor obţine sunt nenule
  • În fişierul de intrare ultimul număr nu este urmat de caracterul #
  • 16% din teste conţin doar numere formate din cel mult 9 cifre
  • Pentru rezolvarea corectă a cerinţei 1 se obţin 20 de puncte, pentru rezolvarea corectă a cerinţei 2 se obţin 40 de puncte iar pentru rezolvarea corectă a cerinţei 3 se obţin 40 de puncte

Exemplu

cod.incod.outExplicaţie
1
6
10#20#12#34#15#23
1
Doar numărul 23 nu este divizibil cu niciun număr din mulţimea
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
2
5
16#61#12#385#31
9
Pentru parola lui Ionel trebuie sa verificăm divizibilitatea cu numerele
2,3,4,5,6,7,8,9. Două numere sunt divizibile cu 2, un număr este divizibil cu 3,
două numere sunt divizibile cu 4, un număr este divizibil cu 5,
un număr este divizibil cu 6, un număr este divizibil 7, un număr este
divizibil cu 8. Parola este 2 + 1 + 2 + 1 + 1 + 1 + 1 = 9
3
5
30#1100#11#85#121
6
Pentru parola lui Georgel trebuie sa verificăm divizibilitatea cu numerele
10, 11, 12, 13, 14, 15. Două numere sunt divizibile cu 10, trei numere sunt
divizibile cu 11 şi un număr este divizibil cu 15. Parola este 2 + 3 + 1 = 6
Trebuie sa te autentifici pentru a trimite solutii. Click aici