Lista de probleme 3

#1759 Alune

Chip şi Dale s-au plictisit de jocurile de până acum şi au hotărât că este timpul să îmbine culesul alunelor cu un joc care să le stimuleze inteligenţa. Chip propune: “eu pun alunele culese de mine într-un şir de C scorburi, iar tu pui alunele culese de tine într-un alt şir, de D scorburi”.
Dale a ascultat, a fost de acord şi a propus ca jocul să continue astfel: „dacă la împărţirea numărului de alune din prima scorbură a şirului meu la numărul de alune din fiecare scorbură a şirului tău se obţine acelaşi rest, atunci consider că scorbura mea este umplută corect şi scriu pe hârtie cifra 1, altfel o consider umplută incorect şi scriu cifra 0. Verific apoi, aplicând aceeaşi regulă, dacă a doua scorbură din şirul meu este umplută corect, adică dacă la împărţirea numărului de alune din aceasta la numărul de alune din fiecare scorbură din şirul tău, se obţine acelaşi rest. Notez pe hârtie, în continuare, rezultatul verificării (0 sau 1). Încheiem jocul atunci când terminăm de verificat, după această regulă, toate cele D scorburi ale mele.”
Scrieţi un program care citeşte din fişierul alune.in numerele naturale nenule C şi D şi numărul de alune din fiecare scorbură din şirul lui Chip, respectiv al lui Dale. Programul determină şirul de cifre notat de Dale pe hârtie.

ONI 2012, Clasa a VIII-a

#1708 Cuburi3

Ionuţ a învăţat la şcoală să lucreze cu numere mari. El are la dispoziţie un şir de N numere naturale nenule. Din fiecare număr el şterge exact trei cifre, fără să schimbe ordinea cifrelor rămase, astfel încât să obţină cel mai mic număr natural nenul posibil. De exemplu, din numărul 20731049 se obţine numărul 20049, iar din numărul 13004 se obţine numărul 10. Înlocuind fiecare număr citit cu numărul obţinut prin operaţia de mai sus, Ionuţ obţine un nou şir şi scrie termenii acestuia pe feţele unor cuburi astfel: primele şase numere din şir le scrie pe primul cub şi îl notează pe acesta cu 1, următoarele şase numere din şir le scrie pe un alt cub pe care îl notează cu 2 ş.a.m.d.
Aceste cuburi au fost distribuite în piramide după modelul din figura de mai sus.

Piramidele au fost numerotate cu numere naturale consecutive. Piramida cu numărul de ordine 1 este formată numai din cubul cu numărul de ordine 1 şi are un singur nivel, piramida cu numărul de ordine 2 are pe primul nivel cuburile 2, 3 şi 4 iar pe ultimul nivel cubul 5 ş.a.m.d.

Două niveluri alăturate în cadrul unei piramide diferă prin exact două cuburi. Primul nivel al unei piramide conţine cu două cuburi mai mult decât primul nivel al piramidei precedente. Piramida se consideră completă dacă pe ultimul nivel are un singur cub.

Scrieţi un program care citeşte numerele naturale nenule N şi K, apoi cele N numere naturale ce fac parte din şirul iniţial, şi determină:
a) Numărul de piramide complete construite de Ionuţ.
b) Numerele scrise pe cuburile din primele K piramide.

#1760 Optim

Gigel primea de la mama lui, ca temă, o foaie pe care era scris un şir de N numere întregi. Singurul calcul pe care ştia să îl facă până acum era suma tuturor numerelor. Pentru aceasta el plasa N-1 semne de adunare, +, între numerele aflate pe poziţii consecutive în şir şi calcula astfel suma acestor numere. Între timp a crescut şi a învăţat şi operaţia de înmulţire pentru care foloseşte semnul *. Din şirul celor N-1 semne de adunare, îi trece prin minte să înlocuiască K semne + cu K semne *.
Îşi dă seama că tema se complică, deoarece înmulţirile trebuie efectuate înaintea adunărilor, dar nu se dă bătut şi duce calculul până la capăt.
Scrieţi un program care să determine valoarea minimă pe care o poate obţine şi valoarea maximă pe care o poate obţine după înlocuirea menţionată.

ONI 2012, Clasa a VIII-a