Sunteți pe pagina 1din 25

Ministerul Educaţiei Naţionale

Olimpiada de Informatică – etapa judeţeană Clasa a V-a


1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Problema 1- martisoare 100 puncte


Gică şi Lică lucrează la o fabrică de jucării, în schimburi
diferite. Anul acesta patronul fabricii a hotărât să
confecţioneze şi mărţişoare. Mărţişoarele gata
confecţionate sunt puse în cutii numerotate consecutiv.
Cutiile sunt aranjate în ordinea strict crescătoare şi
consecutivă a numerelor de pe acestea.
Gică trebuie să ia, în ordine, fiecare cutie, să lege la
fiecare mărţişor câte un şnur alb-roşu şi apoi să le pună la loc în cutie.
În fiecare schimb, Gică scrie pe o tablă magnetică, utilizând cifre magnetice, în ordine strict crescătoare, numerele
cutiilor pentru care a legat șnururi la mărțișoare.
Când se termină schimbul lui Gică, Lică, care lucrează în schimbul următor, vine şi ambalează cutiile cu numerele de
pe tablă şi le trimite la magazine. Totul merge ca pe roate, până într-o zi, când, două cifre de pe tablă se
demagnetizează şi cad, rămânând două locuri goale. Lică observă acest lucru, le ia de jos şi le pune la întâmplare pe
tablă, în cele două locuri goale. Singurul lucru de care ţine cont este acela că cifra 0 nu poate fi prima cifră a unui
număr.
Cerinţe
Scrieţi un program care să citească numerele naturale N (reprezentând numărul de numere scrise pe tablă) şi
c1,c2,...,cN (reprezentând numerele scrise, în ordine, pe tablă, după ce Lică a completat cele două locuri goale
cu cifrele căzute) și care să determine:
a) cele două cifre care au fost schimbate între ele, dacă, după ce au completat locurile goale, acestea au
schimbat șirul numerelor scrise de Gică;
b) numărul maxim scris pe tablă de Gică.
Date de intrare
Fişierul de intrare martisoare.in conţine pe prima linie numărul natural N reprezentând numărul de numere de
pe tablă. A doua linie a fişierului conţine, în ordine, cele N numere c1,c2,...,cN, separate prin câte un spaţiu,
reprezentând, în ordine, numerele existente pe tablă, după ce Lică a completat cele două locuri libere cu cifrele
căzute.
Date de ieşire
Fişierul de ieşire martisoare.out va conţine pe prima linie două cifre, în ordine crescătoare, separate printr-un
spațiu, reprezentând cele două cifre care au fost schimbate între ele sau 0 0 în cazul în care cele două cifre
magnetice căzute, după ce au fost puse înapoi pe tablă, nu au schimbat șirul numerelor scrise de Gică. A doua linie
va conține un număr reprezentând numărul maxim din secvenţa de numere consecutive scrisă de Gică pe tablă.
Restricţii şi precizări
 4 ≤ N ≤ 100000
 1 ≤ ci ≤ 100000, (1≤i≤N)
 N, c1, c2, ..., cN sunt numere naturale;
 cele două cifre care cad de pe tablă pot proveni din același număr;
 Pentru rezolvarea cerinţei a) se acordă 60% din punctaj, iar pentru cerinţa b) se acordă 40% din punctaj.
Exemple
martisoare.in martisoare.out Explicaţii
5 2 6 Gică a scris pe tablă, în ordine, numerele: 25 26 27 28 29
65 22 27 28 29 29 Au fost schimbate între ele cifra 2 din primul număr şi cifra 6 din al
doilea număr. Cel mai mare număr scris de Gică pe tablă este 29.
4 8 9 Gică a scris pe tablă, în ordine, numerele: 95 96 97 98
95 96 97 89 98 Au fost schimbate între ele cifrele ultimului număr.
Cel mai mare număr scris de Gică pe tablă este 98.
5 0 0 Gică a scris pe tablă, în ordine, numerele: 35 36 37 38 39
35 36 37 38 39 39 Șirul numerelor nu a fost schimbat, cel mai mare număr fiind 39.
Timp maxim de execuţie/test: 0.5 secunde
Memorie totală: 2 MB, din care pentru stivă maxim 2 MB
Dimensiunea maximă a sursei 5KB.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Problema 2 - piramide 100 puncte


Fascinat de Egiptul Antic, Rareș vrea să construiască cât mai multe piramide din cartonașe pătratice identice.
El are la dispoziție N cartonașe numerotate de la 1 la N, albe sau gri, așezate în ordinea strict crescătoare a
numerelor.
 Prima piramidă o va construi folosind primele trei cartonașe. Baza piramidei va fi formată din cartonașele 1
și 2 așezate alăturat, peste care va așeza cartonașul 3 (vârful piramidei).
 A doua piramidă va avea baza formată din cartonașele 4,5 și 6 așezate alăturat, deasupra cărora se vor
așeza cartonașele 7 și 8, alăturate, peste care se va așeza cartonașul 9 (vârful piramidei).
 Mai departe, va construi în ordine piramidele complete cu bazele formate din 4 cartonașe (cu numerele de
la 10 la 13), respectiv 5 cartonașe (cu numerele de la 20 la 24), 6 cartonașe (cu numerele de la 35 la 40)
etc., cât timp va putea construi o piramidă completă. De exemplu, dacă Rareș are N=75 cartonașe atunci el
va construi piramidele complete 1,2,3,4 și 5 din imaginile următoare. Din cele 75 de cartonașe el va
folosi doar primele 55 de cartonașe, deoarece ultimele 20 cartonașe nu sunt suficiente pentru a construi
piramida 6, cu baza formată din 7 cartonașe.

Cerințe
Scrieţi un program care să citească numerele naturale N (reprezentând numărul de cartonașe), X (reprezentând
numărul unui cartonaș), K (reprezentând numărul de cartonașe albe), numerele celor K cartonașe albe c1,c2,...,cK și
care să determine: a) numărul P al piramidei complete ce conține cartonașul numerotat cu X; b) numărul M maxim
de piramide complete construite de Rareș; c) numărul C de cartonașe nefolosite; d) numărul A al primei piramide
complete care conține cele mai multe cartonașe albe.
Date de intrare
Fişierul de intrare piramide.in conţine pe prima linie cele trei numere N, X şi K, separate prin câte un spaţiu,
cu semnificaţia din enunţ. A doua linie a fişierului conţine, în ordine, cele K numere c1,c2,...,cK, separate prin
câte un spaţiu, reprezentând numerele celor K cartonașe albe din cele N.
Date de ieșire
Fişierul de ieşire piramide.out va conţine pe prima linie numărul P sau valoarea 0 (zero) dacă niciuna dintre
piramidele complete construite nu conține cartonașul cu numărul X. A doua linie a fișierului va conține numărul M.
Cea de-a treia linie va conţine numărul C. Cea de-a patra linie va conține numărul A sau valoarea 0 (zero) dacă
nicio piramidă completă nu conține cel puțin un cartonaș alb.
Restricţii şi precizări
 N, X, K, c1, c2,..., cK, P, M, A sunt numere naturale nenule.
 3 ≤ N ≤ 100000; 1 ≤ X ≤ N; 1 ≤ K ≤ N; 1 ≤ c1 < c2 <...< cK ≤ N
 O piramidă completă cu baza formată din b cartonașe se construiește prin așezarea cartonașelor necesare pe b
rânduri: b cartonașe pe primul rând (al bazei), apoi b-1 cartonașe pe rândul al doilea, b-2 pe rândul al
treilea,..., două cartonașe pe rândul b-1 și un cartonaș (vârful piramidei) pe rândul b.
 Pentru rezolvarea cerinţei a) se acordă 20% din punctaj, pentru cerinţa b) 20% din punctaj, pentru cerinţa
c) 20% din punctaj şi pentru cerinţa d) 40% din punctaj.
Exemplu
piramide.in piramide.out
75 15 23 3
5 9 11 18 20 21 25 27 28 30 35 37 45 46 51 55 60 65 68 69 70 71 72 5
20
4
Explicație. Piramida 3 (P=3) construită conține cartonașul cu numărul X=15. Rareș poate construi doar M=5 piramide complete,
rămânând nefolosite 20 cartonașe (C=20) insuficiente pentru construirea piramidei 6. Numărul maxim de cartonașe albe dintr-o
piramidă completă este egal cu 6. Piramidele 4 și 5 conțin fiecare un număr maxim de cartonașe albe (6), prima dintre acestea
fiind piramida 4 (A=4). Ultimele 7 cartonașe albe (cu numerele: 60,65,68,69,70,71,72) nu sunt folosite în construirea
piramidelor complete.
Timp maxim de executare/test: 0,5 secunde
Memorie totală: 2 MB, din care pentru stivă maxim 2 MB
Dimensiunea maximă a sursei: 5 KB
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Problema 1 - imprimanta cls a VI-a 100 puncte


Cif-Oji6 este o imprimantă matriceală numită şi imprimantă cu ace, deoarece tipărirea se realizează prin
impactul acelor capului de imprimare pe o bandă cu tuş.
Acele sunt aranjate într-o grilă dreptunghiulară formată din 5 rânduri de ace, pe fiecare rând aflându-se
la distanţe egale câte 3 ace, aşa cum se observă în figura alăturată.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Prin acţionarea diferitelor combinaţii de ace din grilă, se defineşte forma fiecărei cifre ce permite tipărirea acesteia
prin puncte, în felul următor:

De exemplu, cifra 2 va fi tipărită prin 11 puncte ca rezultat al acţionării a 11 ace din grilă: din primul rând de ace al
grilei se vor acţiona toate cele 3 ace, din următorul rând doar acul din dreapta, apoi de pe următorul rând toate cele
3 ace, apoi acul din stânga de pe penultimul rând iar din ultimul rând toate cele 3 ace.
Cerinţe
a) Ştiind că imprimanta Cif-Oji6 a tipărit numărul N, determinaţi care este cea mai mare cifră a numărul N pentru
care s-a acţionat un număr minim de ace ale grilei.
b) Ştiind că imprimanta mai are tuş pe bandă doar pentru imprimarea a K puncte, determinaţi cel mai mare
număr natural ce poate fi tipărit prin exact K puncte.

Date de intrare
Fişierul de intrare imprimanta.in conţine pe prima linie două numere naturale N şi K separate printr-un
spaţiu, unde N reprezintă numărul tipărit de imprimantă iar K numărul de puncte pentru care imprimanta mai are
tuş.

Date de ieşire
Fişierul de ieşire imprimanta.out va conţine:
- pe prima linie un singur număr natural ce reprezintă cea mai mare cifră a numărul N pentru care s-a acţionat un
număr minim de ace ale grilei.
- pe cea de-a doua linie a fişierului se va scrie cel mai mare număr natural ce poate fi tipărit prin K puncte.

Restricţii şi precizări
 10 ≤ N ≤ 1015
 14 ≤ K ≤ 100 000
 Pentru rezolvarea corectă a cerinţei a) se acordă 30% din punctajul fiecărui test iar pentru rezolvarea
corectă a cerinţei b) se acordă 70% din punctajul fiecărui test.

Exemple
imprimanta.in imprimanta.out Explicaţii
2852 16 5 Pentru tipărirea cifrei 2 s-au acţionat 11 ace, pentru cifra 8 s-au acţionat 13
74 ace iar pentru cifra 5 tot 11 ace. Numărul minim de ace pentru tipărirea
unei cifre este 11.
5 este cea mai mare cifră a numărului 2852 ce a fost tipărită cu 11 ace.
Cel mai mare număr natural ce poate fi tipărit prin 16 puncte este 74
7 puncte (pentru cifra 7) + 9 puncte (pentru cifra 4) = 16 puncte.
88 25 8 Pentru tipărirea cifrei 8 s-au acţionat 13 ace.
11111 Cel mai mare număr natural ce poate fi tipărit prin 25 de puncte este
11111
5* (5 puncte pentru cifra 1) = 25 puncte.
Timp maxim de executare: 1 secundă/test
Memorie totală: 2MB din care 1MB pentru stivă.
Dimensiunea maximă a sursei 5KB

Problema 2 – munte 100 puncte

Se consideră un şir x1,x2,...,xn format din n numere naturale distincte. O secvenţă de număr maxim de
elemente vecine în şir, de forma xi,xi+1,...,xk-1,xk,xk+1,...,xj (1≤i<k<j≤n) cu proprietatea că
xi<xi+1<...< xk-1<xk>xk+1>...>xj, se numeşte munte cu vârful xk. Două secvenţe munte au maxim un
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

element comun în şir. O secvenţă munte are cel puţin 3 elemente. Un exemplu de şir format cu valorile 3 4 6 8
nu conţine nicio secvenţă munte, iar unul format cu valorile 3 4 8 1 2 5 0 conţine 2 secvenţe munte: 3 4 8
1 şi 1 2 5 0.

După determinarea tuturor secvenţelor munte şi a vârfurilor acestora, se elimină din şir vârfurile secvenţelor munte
şi procedura continuă repetat cu determinarea noilor secvenţe munte şi a vârfurilor lor din şirul nou obţinut.
Procedura se opreşte în momentul în care în şir nu mai există nicio secvenţă munte.

Cerinţă
Scrieţi un program care citeşte numerele n, x1, x2, ..., xn şi apoi determină:
a) numărul de secvenţe munte din şirul iniţial;
b) numărul total de secvenţe munte obţinute pornind de la şirul iniţial până la cel care nu mai conţine nicio
secvenţă munte;
c) numărul de elemente din şirul final care nu mai conţine secvenţe munte.

Date de intrare
Fişierul de intrare munte.in conţine pe prima linie numărul n, iar pe următoarea linie numerele naturale x1,
x2,..., xn separate două câte două prin câte un spaţiu.

Date de ieşire
Fişierul de ieşire munte.out va conţine pe prima linie un număr natural conform cerinţei a), pe a doua linie un
număr natural conform cerinţei b), pe a treia linie un număr natural conform cerinţei c).

Restricţii şi precizări
 3 ≤ n ≤ 100
 0 ≤ xi ≤ 100000, 1 ≤ i ≤ n
 Pentru rezolvarea corectă a cerinţei a) se obţine 20% din punctaj.
 Pentru rezolvarea corectă a cerinţei b) se obţine 40% din punctaj.
 Pentru rezolvarea corectă a cerinţei c) se obţine 40% din punctaj.
 Pentru testele date se asigură că şirul de numere dat iniţial conţine cel puţin o secvenţă munte.

Exemplu
munte.in munte.out Explicaţie
8 2 a) Sunt două secvenţe munte: 1 2 5 0 şi 0 6 9 3
1 2 5 0 6 9 3 4 4 b) După eliminarea vârfurilor secvenţelor munte, şirul nou
4 este 1 2 0 6 3 4. Acest şir conţine 2 secvenţe
munte: 1 2 0 şi 0 6 3. După eliminarea vârfurilor
secvenţelor munte, şirul nou este 1 0 3 4. Noul şir nu
mai conţine nicio secvenţă munte. În total sunt deci 4
secvenţe.
c) Şirul final care nu mai conţine secvenţe munte 1 0 3
4 are 4 elemente

Timp maxim de execuţie: 0.1 secunde/test


Memorie totală: 2MB din care 1MB pentru stivă.
Dimensiunea maximă a sursei 5KB.

Problema 1 – pătrat cls a VII-a


100 puncte
Cel mai mare observator astronomic din România și din Europa de Est, aflat la
Galați, a captat o imagine a boltei cerești, ce surprinde toate stelele vizibile în
acel moment. Imaginea este în format digital, codificată sub forma unui tablou
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

bidimensional, cu N linii și M coloane. Fiecare element al tabloului conține un număr natural care reprezintă
intensitatea luminoasă a unei stele.
Numim stea strălucitoare o stea care are intensitatea luminoasă mai mare decât a tuturor stelelor
învecinate direct cu ea, pe orizontală, verticală sau diagonală. Numim constelație pătrată patru stele
strălucitoare care se află plasate în colțurile unui pătrat cu laturile paralele cu marginile tabloului. Lungimea laturii
unei constelații pătrate este egală cu numărul de stele din care este formată latura. O stea strălucitoare poate face
parte din mai multe constelații pătrate.
Cerinţe
Scrieți un program care să determine:
a) Numărul stelelelor strălucitoare;
b) Numărul constelațiilor pătrate;
c) Lungimea laturii pătratului care reprezintă cea mai mare constelație pătrată.
Date de intrare
Din fișierul patrat.in se citesc de pe prima linie, două numere naturale N și M, separate printr-un spațiu,
reprezentând dimensiunile tabloului bidimensional, iar de pe următoarele N linii, câte M numere naturale separate
prin câte un spațiu, reprezentând intensitatea luminoasă a stelelor.
Date de ieşire
În fișierul patrat.out se va scrie pe prima linie un număr natural reprezentând răspunsul la cerința a). Pe cea
de-a doua linie se va scrie un număr natural reprezentând răspunsul la cerința b). Pe a treia linie se va scrie un
număr natural reprezentând răspunsul la cerința c).
Restricţii
 1 < N ≤ 200
 1 < M ≤ 200
 1 ≤ intensitatea unei stele ≤ 1000
 pentru rezolvarea corectă a cerinţei a) se acordă 40% din punctajul fiecărui test, pentru rezolvarea corectă a
cerinţei b) se acordă 40% din punctajul fiecărui test iar pentru rezolvarea corectă a cerinţei c) se acordă 20%
din punctajul fiecărui test.
 Respectaţi formatul fişierului de ieşire! Pentru a obţine punctajul acordat unei cerinţe, trebuie ca răspunsul
din fişier să fie corect şi scris exact pe linia precizată în enunţ.
Exemplu
patrat.in patrat.out Explicaţie
6 8 11 În tabloul bidimensional cu 6 linii și 8 coloane există 11 stele strălucitoare.
1 8 5 7 1 6 3 4 3
1 2 3 1 1 5 2 1 5
Tabloul conține 3 constelații pătrate iar cea mai mare are latura pătratului de
1 7 1 9 1 1 8 1 lungime 5.
6 3 5 1 6 4 3 1
1 9 5 7 1 8 2 1
1 5 6 5 3 1 3 6
2 3 0 În tabloul bidimensional cu 2 linii și 3 coloane nu există nici o stele
1 1 1 0
1 1 1 0
strălucitoare.Tabloul conține 0 constelații pătrate iar cea mai mare are latura
pătratului de dimensiune 0.
Timp maxim de execuţie/test: 0.6 secunde
Memorie totală disponibilă 2 MB.
Dimensiunea maximă a sursei 5 KB.

Problema 2 – schi 100 puncte


La proba de sărituri cu schiurile din cadrul jocurilor olimpice de iarnă participă N concurenți, numerotați
cu numere de la 1 la N.
Regulile de desfășurare a probei sunt următoarele:
- concurenții evoluează pe rând, în ordine de la 1 la N;
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

- fiecare concurent va efectua o singură săritură;


- după efectuarea săriturii fiecare concurent primește un anumit punctaj;
- pe tot parcursul concursului, comisia de arbitri are obligația să alcătuiască o listă cu punctajele
obținute de concurenți, în ordinea evoluției lor;
- evoluția unui concurent durează exact un minut;
- nu se face pauză între evoluțiile a doi concurenți care au numere de ordine consecutive;
- afișarea punctajului nu necesită timp suplimentar după efectuarea săriturii;
- proba se încheie la un minut după evoluția ultimului concurent.
Pe tot parcursul concursului se ține în mod neoficial și un clasament parțial, pe baza rezultatelor obținute
de concurenții care au evoluat până în acel moment. Asta pentru că șeful comisiei de arbitri are o
curiozitate aparte și pune K întrebări sub forma următoare: Câte minute s-a ocupat primul loc din
clasament cu un punctaj egal cu X puncte ? Dacă nici un concurent nu s-a clasat pe primul loc cu X
puncte atunci primește ca răspuns valoarea 0.
Cerința
Scrieți un program care determină răspunsul pentru fiecare dintre cele K întrebări puse de șeful comisiei
de arbitri.
Date de intrare
În fișierul schi.in, pe prima linie este scris un număr natural, N reprezentând numărul de concurenți.
Pe a doua linie a fișierului sunt scrise cele N numere naturale separate prin câte un spațiu, reprezentând
punctajele obținute de fiecare dintre cei N concurenți, în ordinea în care aceștia au evoluat. Pe a treia linie
a fișierului este scris numărul natural K ce reprezintă numărul de întrebări puse de șef. Pe a patra linie a
fișierului sunt scrise K numere naturale separate prin câte un spațiu, reprezentând valorile X ale
punctajelor alese de șeful comisiei de arbitri.
Date de ieșire
În fișierul schi.out se vor scrie K numere, separate prin câte un spațiu, reprezentând, în ordine,
răspunsurile la cele K întrebări.
Restricții și precizări
 1 ≤ N ≤ 100 000
 1 ≤ K ≤ 100 000
 0 ≤ punctajele obținute de concurenți ≤ 1 000 000 000
 0 ≤ valorile X alese de șeful arbitrilor ≤ 1 000 000 000
Exemplu
schi.in schi.out Explicaţii
10 0 1 4 4 0 1 Cu punctajul 5 nu s-a ocupat niciodată locul 1, cu
1 6 5 3 6 8 8 6 1 punctajul 1 s-a ocupat primul loc un singur minut, cu
9 punctajele 6 și 8 s-a ocupat locul 1 câte 4 minute. Cu
6
punctajul 2 nu s-a ocupat locul 1. El nici nu a fost
5 1 6 8 2 9
obținut de vreun concurent. Cu punctajul 9 s-a ocupat
locul 1 un minut.
Timp maxim de execuţie/test: 0.5 secunde
Memorie totală disponibilă 8 MB.
Dimensiunea maximă a sursei 5 KB.

Problema 1 – beţe 100 puncte

Ana şi Bogdan au găsit la bunicul lor o cutie cu N beţe de aceeaşi lungime. După câteva minute de joacă
urmează cearta. Bunicul le-a propus să rupă cele N beţe și apoi Ana să primească fragmentele din mâna
stângă, iar Bogdan fragmentele din mâna dreaptă. Zis şi făcut. Copiii au luat fragmentele, le-au numerotat
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

fiecare cu numere de la 1 la N, le-au măsurat şi acum îşi doresc să lipească fragmentele primite, dar mai
au nevoie de câteva informaţii.

Cerinţe
Cunoscând N numărul de beţe, a1,a2,...,aN lungimile fragmentelor primite de Ana şi b1,b2,...,
bN lungimile fragmentelor primite de Bogdan, să se scrie un program care să determine:
c) lungimea iniţială a beţelor;
d) lungimea celui mai lung băţ care se poate obţine prin lipirea unui fragment aparţinând Anei cu un
fragment care aparţine lui Bogdan;
e) numărul beţelor de lungime maximă care se pot obţine prin lipirea unui fragment aparţinând Anei cu
un fragment care aparţine lui Bogdan.

Date de intrare
Fişierul de intrare bete.in conţine pe prima linie numărul natural N reprezentând numărul de beţe. Pe a
doua linie sunt N numere naturale a1,a2, ...,aN reprezentând lungimile fragmentelor primite de Ana
şi pe a treia linie sunt N numere naturale b1,b2,...,bN reprezentând lungimile fragmentelor primite de
Bogdan.

Date de ieşire
Fişierul de ieşire bete.out va conţine trei linii. Pe prima linie se va scrie numărul natural L
reprezentând lungimea iniţială a beţelor, pe a doua linie se va scrie numărul natural K reprezentând
lungimea celui mai lung băţ care se poate obţine prin lipirea unui fragment aparţinând Anei cu un
fragment care aparţine lui Bogdan, iar pe a treia linie se va scrie numărul natural P reprezentând numărul
beţelor de lungime maximă care se pot obţine prin lipirea unui fragment aparţinând Anei cu un fragment
care aparţine lui Bogdan.

Restricţii
 1 ≤ N ≤ 1000
 1 ≤ ai ≤ 10000, (1≤i≤N)
 1 ≤ bi ≤ 10000, (1≤i≤N)
 1 ≤ L ≤ 20000
 1 ≤ K ≤ 20000
 1 ≤ P ≤ 1000
 Odată lipite două fragmente, acestea nu se pot dezlipi.
 Pentru determinarea corectă a valorii L se acordă 30% din punctaj, pentru determinarea corectă a
valorii K se acordă 30% din punctaj, iar pentru determinarea corectă a valorii P se acordă 40% din
punctaj.

Exemplu
bete.in bete.out Explicaţii
6 10 Lungimea iniţială este 10, lungimea maximă este 16 și se
2 6 7 1 3 5 16 poate forma un singur băţ de lungime 16.
5 4 7 8 9 3 1

Timp maxim de execuţie/test: 0.5 secunde


Memorie totală: 2MB din care 1MB pentru stivă.
Dimensiunea maximă a sursei 5KB.

Problema 2 - chibrituri

Lui Gigel, elev în clasa a V-a, îi place grozav de tare să se joace cu cifrele, cu numerele şi
creează tot felul de probleme pe care apoi încearcă să le rezolve. Acum
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

se joacă cu o cutie de chibrituri şi formează cu ele cifre. Apoi privirea i-a căzut pe cadranul unui ceas electronic şi a
văzut că cifrele sunt formate din segmente orizontale şi verticale şi a început să formeze cu chibriturile cifrele care
indică ora
(vezi figura). Şi imediat şi-a pus o întrebare: “oare dacă am n chibrituri puse vertical şi m chibrituri puse orizontal,
care este ora minimă pe care o pot forma cu aceste chibrituri?”

Cerinţă
Fiind date un număr n de chibrituri verticale şi un număr m de chibrituri orizontale, să se scrie un program care
determină numărul de ore posibile, ora minimă şi ora maximă care se pot forma cu aceste chibrituri, în modul
indicat mai sus, utilizând toate chibriturile respective şi nemodificând orientarea acestora.

Date de intrare
Fişierul de intrare chibrituri.in conţine pe prima linie două numere naturale n m, separate printr-un spaţiu,
indicând numărul de chibrituri verticale (n), respectiv orizontale (m).

Date de ieşire
Fişierul de ieşire chibrituri.out va conţine pe prima linie numărul de variante posibile de a forma o oră
corectă, pe a doua linie ora minimă ce poate fi obținută utilizând toate chibriturile și nemodificând orientarea
acestora, iar pe a treia linie ora maximă ce poate fi obținută utilizând toate chibriturile și nemodificând orientarea
acestora. Ora minimă și, respectiv, ora maximă se vor scrie sub forma hh:mm, unde ora hh şi minutul mm vor fi
formate din exact două cifre, separate prin caracterul : (două puncte).

Restricţii
Pentru datele de test există întotdeauna soluţie.
Cifrele sunt formate din chibrituri în felul următor:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|

Pentru determinarea corectă a numărului de variante se va acorda 20% din punctaj, pentru determinarea corectă a
numărului de variante şi a orei minime se va acorda 60% din punctaj, iar pentru determinarea corectă a numărului
de variante, a orei minime şi a orei maxime se va acorda punctajul maxim.

Exemplu
chibrituri.in chibrituri.out Explicaţii
14 10 17 17 variante posibile
00:28 Ora minimă: 00:28
20:08 Ora maximă: 20:08

Timp maxim de execuţie: 0.1 secunde/test


Memorie totală: 2MB din care 1MB pentru stivă.
Dimensiunea maximă a sursei 5KB.

Problema 1– clădiri cls a VI-a 100 punc


Având mai multe cuburi la dispoziţie, Crina
şi Rareş au hotărât să construiască clădiri prin
alipirea a două sau mai multor turnuri.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Turnurile au fost obţinute prin aşezarea cuburilor unul peste celălalt. Înălţimea unui turn este dată de numărul de
cuburi din care este format.
Clădirile construite au fost aşezate în linie, una lângă alta formând astfel o stradă, pe care cei doi copii se vor plimba.
Pentru numerotarea clădirilor Crina şi Rareş au stabilit următoarele reguli:
- Crina porneşte dintr-un capăt al străzii, iar Rareş din celălalt capăt al acesteia; fiecare dintre ei traversează
strada complet, trecând prin dreptul fiecărei clădiri
- Crina lipeşte pe fiecare clădire câte un bileţel pe care scrie înălţimea turnurilor din care aceasta este construită,
în ordinea în care ea le vede când trece prin dreptul lor (de exemplu, pentru imaginea de mai sus, Crina va lipi
pe prima clădire un bileţel pe care va scrie numărul 3112 deoarece, primul turn e format din 3 cuburi,
următoarele două turnuri ale acestei clădiri sunt formate din câte un cub iar cel de-al patrulea turn e format din
2 cuburi);
- Rareş va proceda la fel, dar începe plimbarea din celalalt capăt al străzii. În exemplul din imagine, el va lipi pe
prima clădire pe care o întâlneşte un bileţel pe care scrie numărul 2121.
La finalul plimbării, Crina şi Rareş îşi dau seama că există clădiri pe care au lipit amândoi bileţele cu numere
identice.
Cerinţe
a) Care este înălţimea celui mai înalt turn şi care este numărul clădirilor care au în construcţia lor un astfel de
turn?
b) Care este numărul clădirilor pe care cei doi copii au lipit bileţele cu numere identice?
c) Care este cel mai mic număr de cuburi necesar pentru a completa clădirile astfel încât, pe fiecare clădire,
bileţelul pe care îl va lipi Crina să conţină acelaşi număr cu cel pe care îl va lipi Rareş? Cuburile din care a fost
construită iniţial clădirea nu se pot muta.
Date de intrare
Din fişierul cladiri.in se va citi de pe prima linie un număr natural N, reprezentând numărul clădirilor de
pe stradă, iar de pe următoarele N linii câte un număr natural cu toate cifrele nenule, reprezentând numerele scrise
de Crina pe bileţele, în ordinea în care au fost lipite de ea pe clădiri.
Date de ieşire
În fişierul cladiri.out se vor scrie pe prima linie două numere naturale despărţite printr-un singur spaţiu
ce reprezintă, în ordine, valorile cerute la cerinţa a). Pe cea de-a doua linie a fişierului se va scrie un număr natural,
mai mare sau egal cu zero, reprezentând răspunsul la cerinţa b). Pe cea de-a treia linie a fişierului se va scrie un
număr natural, mai mare sau egal cu zero, reprezentând răspunsul la cerinţa c).
Restricţii şi precizări
- 1  N  10000
- Fiecare clădire este alcătuită din cel mult 9 turnuri, iar înălţimea fiecărui turn este exprimată printr-o cifră
nenulă.
- Pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctajul fiecărui test, pentru rezolvarea corectă a
cerinţei b) se acordă 40% din punctajul fiecărui test, iar pentru rezolvarea corectă a cerinţei c) se acordă 40%
din punctajul fiecărui test.
- Respectaţi formatul fişierului de ieşire! Pentru a obţine punctajul acordat unei cerinţe, trebuie ca răspunsul din
fişier să fie corect şi scris exact pe linia precizată în enunţ.
Exemplu
cladiri.
cladiri.in Explicaţie
out
6 7 3 Cel mai înalt turn este format din 7 cuburi. Sunt 3 clădiri care au în construcţia lor
3112 2 turnuri cu această înălţime, cele pe care Crina lipeşte numerele: 2772, 1741 şi
2772 8 27372. Rareş lipeşte pe clădiri bileţele cu numerele: 2121, 27372, 1471,
42422 22424, 2772 şi 2113. Două dintre aceste clădiri au primit aceleaşi numere și de
1741 la Crina: 2772 şi 27372. Valoarea determinată conform cerinţei c) este 8. Se
27372
adaugă un cub la clădirea cu numărul 3112, 2 cuburi la cea cu numărul 42422, 3
1212
cuburi la clădirea cu numărul 1741 şi 2 cuburi la cea cu numărul 1212.
Timp maxim de execuţie: 0.5 secunde/test; Memorie totală disponibilă: 32 MB; Dimensiunea maximă a
sursei : 10 KB

Problema 2 – galbeni 100 puncte


După ce au descoperit ascunzătoarea piratului Spânu, marinarii de pe corabia
“Speranţa” au hotărât să ofere sătenilor o parte din comoara acestuia. Întrucât
comoara avea un număr nelimitat de bani din aur, numiţi galbeni, singura
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

problemă a marinarilor a fost regula după care să împartă banii. După îndelungi discuţii au procedat
astfel: i-au rugat pe săteni să se aşeze în ordine la coadă şi să vină, pe rând, unul câte unul pentru a-şi
ridica galbenii cuveniţi. Primul sătean a fost rugat să îşi aleagă numărul de galbeni, cu condiţia ca acest
număr să fie format din exact K cifre. Al doilea sătean va primi un număr de galbeni calculat astfel: se
înmulţeşte numărul de galbeni ai primului sătean cu toate cifrele nenule ale acelui număr, rezultatul se
înmulţeşte cu 8 şi apoi se împarte la 9 păstrându-se doar ultimele K cifre ale câtului împărţirii. Dacă
numărul obţinut are mai puţin de K cifre, atunci acestuia i se adaugă la final cifra 9, până când se
completează K cifre. Pentru a stabili câţi galbeni primeşte al treilea sătean, se aplică aceeaşi regulă, dar
pornind de la numărul de galbeni ai celui de-al doilea sătean. Regula se aplică în continuare fiecărui
sătean, plecând de la numărul de galbeni primiţi de săteanul care a stat la coadă exact în faţa lui.
Cerinţa
Cunoscând numărul de galbeni aleşi de primul sătean, determinaţi numărul de galbeni pe care îl va
primi al N-lea sătean.
Date de intrare
Fişierul galbeni.in conţine pe prima linie cele 3 numere naturale nenule S, K, N separate prin câte un
spaţiu, unde S reprezintă numărul de galbeni ales de primul sătean, K este numărul de cifre ale numărului
S, iar N reprezintă numărul de ordine al săteanului pentru care se cere să determinaţi numărul de galbeni
primiţi.
Date de ieşire
Fişierului galbeni.out conţine pe unica sa linie un număr natural reprezentând rezultatul determinat.

Restricţii
 2 ≤ N ≤ 1 000 000 000
 1 ≤ K ≤ 3
 Se garantează că S are exact K cifre.
Exemplu
galbeni.in galbeni.o Explicaţie
ut
51 2 3 77 Primul sătean a luat 51 de galbeni. Cel de al doilea sătean va primi 26 de galbeni
(51 se înmulţeşte cu cifrele nenule 51*5*1=255, 255 se înmulţeşte cu 8 =2040. Câtul
împărţirii lui 2040 la 9 = 226, ultimele două cifre fiind 26).
Celui de al treilea sătean va primi 77 de galbeni
(26 se înmulţeşte cu cifrele nenule 26*2*6=312, 312 se înmulţeşte cu 8 şi obţinem
numărul 2496. Câtul împărţirii dintre 2469 şi 9 este 277, ultimele două cifre fiind 77)
10 2 3 96 Primul sătean primeşte 10 galbeni. Pentru a calcula câţi galbeni primeşte al doilea
sătean procedăm astfel: înmulţim 10 cu cifele sale nenule: 10*1 = 10, apoi cu 8,
10*8 = 80. Câtul împărţirii lui 80 la 9 este 8. Acest număr având mai puţin de k=2 cifre,
se adaugă la finalul său cifra 9 şi se obţine 89. Pentru al treilea sătean se pleacă de la 89
(89*8*9=6408, 6408*8=51264, câtul împărţirii lui 51264 la 9 este 5696, ultimele două
cifre sunt 96)

Timp maxim de execuţie: 0.5 secunde/test


Memorie totală disponibilă: 32 MB
Dimensiunea maximă a sursei : 10 KB

Problema 1 – compar cls a VII-a 100 puncte

Ana şi Bogdan au inventat jocul "Compar". Ana scrie pe tablă o secvenţă formată din N numere naturale distincte
cuprinse între 1 şi N, apoi compară fiecare două numere învecinate din secvenţă scriind între ele semnul < sau
semnul >, după caz.
De exemplu, dacă secvenţa de pe tablă este 6 4 2 1 3 5, după compararea elementelor învecinate şi inserarea
semnelor în secvenţă, Ana obţine:
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

6>4>2>1<3<5
După aceea Ana şterge cele N elemente ale secvenţei şi păstrează numai semnele, astfel:
>>><<
La final, Ana îi arată lui Bogdan şirul semnelor şi îi cere să reconstituie secvenţa de numere naturale scrisă iniţial
pe tablă.

Cerinţă
Cunoscând şirul semnelor construit de Ana, scrieţi un program care să îl ajute pe Bogdan să reconstituie secvenţa
de numere naturale distincte scrisă iniţial pe tablă.

Date de intrare
Fişierul de intrare compar.in conţine pe prima linie o secvenţă de caractere din mulţimea { '<', '>'},
reprezentând şirul semnelor obţinut de Ana după compararea elementelor vecine din secvenţa iniţială.

Date de ieşire
Fişierul de ieşire compar.out va conţine pe prima linie numărul natural N, reprezentând lungimea secvenţei
iniţiale. Pe a doua linie vor fi scrise N numere naturale distincte cuprinse între 1 şi N, separate prin câte un spaţiu,
reprezentând elementele secvenţei iniţiale, reconstituită pe baza semnelor din fişierul de intrare.

Restricţii
 1 < N ≤ 100000
 Dacă există mai multe soluţii, afişaţi oricare dintre acestea.
 Pentru determinarea corectă a lungimii secvenţei se acordă 10% din punctajul pe test.

Exemplu
compar.in compar.out Explicaţie
>>><< 6 6>4>2>1<3<5
6 4 2 1 3 5 Există şi alte soluţii posibile, aceasta este doar una dintre ele.

Timp maxim de execuţie/test: 0.2 secunde


Memorie totală disponibilă 2 MB din care 1 MB pentru stivă.
Dimensiunea maximă a sursei 5 KB.

Problema 2 – unific 100 puncte


Se consideră un şir A=(A1, A2, ..., AN), format din N numere naturale nenule. Două numere se consideră vecine dacă
se află pe poziţii alăturate (Ai are ca vecini pe Ai-1 şi Ai+1, pentru orice 1<i<N, A1 are ca vecin doar pe A2, iar AN are
ca vecin doar pe AN-1).
Dacă două elemente vecine Ai, Ai+1 (1≤i<N) au cel puţin o cifră comună, ele se pot unifica. Procedeul de unificare
constă în eliminarea din numerele Ai şi Ai+1 a tuturor cifrelor comune şi adăugarea prin alipire a numărului obţinut
din Ai+1 la numărul obţinut din Ai, formându-se astfel un nou număr. Numărul Ai va fi înlocuit cu noul număr, iar
numărul Ai+1 va fi eliminat din şir. (De exemplu, numerele Ai=23814 şi Ai+1=40273 au cifrele 2, 3, 4 comune,
după unificare obţinem Ai=817, iar Ai+1 este eliminat; observaţi că dacă după eliminarea cifrelor comune, numerele
încep cu zerouri nesemnificative, acestea vor fi eliminate, apoi se realizează alipirea). Dacă în urma eliminării
cifrelor comune, unul dintre numere nu mai are cifre, atunci numărul rezultat va avea cifrele rămase în celălalt.
Dacă în urma eliminării cifrelor comune atât Ai cât şi Ai+1 nu mai au cifre, atunci ambele numere vor fi eliminate
din şir, fără a fi înlocuite cu o altă valoare.
Ordinea în care se fac unificările în şir este importantă: la fiecare pas se alege prima pereche de elemente vecine
Ai Ai+1 care poate fi unificată, considerând şirul parcurs de la stânga la dreapta. (De exemplu, considerând Ai=123,
Ai+1=234, Ai+2=235, se unifică Ai cu Ai+1 => Ai=14, iar unificarea cu următorul număr nu mai este posibilă).
Cerinţă
Cunoscându-se şirul celor N numere naturale, să se determine:
a) cifra care apare cel mai frecvent în scrierea tuturor celor N numere; dacă există mai multe cifre cu aceeaşi
frecvenţă de apariţie maximă, se va reţine cea mai mică cifră.
b) şirul obţinut prin efectuarea unui număr maxim de unificări, după regulile descrise în enunţ.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Date de intrare
Fişierul de intrare unific.in conţine pe prima linie o valoare naturală N, iar pe următoarele N linii, în ordine, cele
N numere naturale din şirul A, câte un număr pe o linie.
Date de ieşire
Fişierul de ieşire unific.out va conţine pe prima linie un număr natural c reprezentând cifra care apare cel mai
frecvent în scrierea celor N numere naturale. Pe cea de a doua linie un număr natural Nr reprezentând numărul de
numere naturale rămase în şir după efectuarea unui număr maxim de unificări. Pe cea de a treia linie se vor scrie
cele Nr numere naturale rămase, în ordinea din şir, separate prin câte un spaţiu.
Dacă în urma procedeului de unificare, toate numerele vor fi eliminate, fişierul de ieşire va conţine o singură linie,
pe care se va scrie cifra care apare cel mai frecvent în scrierea celor N numere naturale.
Restricţii
 1  N  100 000
 Numerele din şirul iniţial, precum şi numerele obţinute în urma unificărilor, nu vor depăşi 1018
 Pentru datele de test şirul obţinut în urma unificărilor este nevid.
 Pentru 30% dintre teste N  1000
 Pentru 70% dintre teste numere naturale din şir au cifrele nenule.
 Pentru determinarea corectă a primei cerinţe se acordă 10% din punctajul pe test. Punctajul integral se acordă
pe ambele cerinţe rezolvate corect.
Exemplu
unific.in unific.out Explicaţii
10 3 Cifra care apare cel mai frecvent este 3 (de 6 ori).
6 2 Se unifică: 47 cu 67 => 46. Şirul rămas: 6 46 40 123 231 1238 331 2035 50007
47 0 837 Se unifică: 6 cu 46 => 4. Şirul rămas: 4 40 123 231 1238 331 2035 50007
67
Se unifică: 4 cu 40 => 0. Şirul rămas: 0 123 231 1238 331 2035 50007
40
123 Se unifică: 123 cu 231, ambele numere rămân fără cifre, deci vor fi ambele eliminate.
231 Şirul rămas: 0 1238 331 2035 50007
1238 Se unifică: 1238 cu 331 => 28. Şirul rămas: 0 28 2035 50007
331 Se unifică: 28 cu 2035 => 835. Şirul rămas: 0 835 50007
2035 Se unifică: 835 cu 50007 => 837. Şirul rămas: 0 837
50007
Timp maxim de execuţie/test: 1 secundă
Memorie totală disponibilă 2 MB din care 1 MB pentru stivă.
Dimensiunea maximă a sursei 5 KB.

Problema 1 – alice 100 puncte

Într-o zi frumoasă de vară, Alice se juca în parc. Deodată, văzu un iepure cu ceas,
numit Iepurele Alb, sărind grăbit în scorbura unui copac. Curioasă, Alice îl urmări şi sări şi ea
în scorbură. Spre mirarea ei, ajunse într-o sală mare cu N uşi încuiate. Pe fiecare uşă era scris
câte un număr natural. Într-o clipă, lângă ea apăru Iepurele Alb şi-i spuse că doar uşile cu
numere magice pot fi deschise dacă are cheile potrivite. Pentru a o ajuta, Iepurele Alb i-a
explicat că un număr magic este un număr natural care poate fi redus la o cifră prin complementarea cifrelor
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

acestuia faţă de cifra sa maximă din scrierea zecimală, apoi prin complementarea cifrelor numărului obţinut faţă de
cifra sa maximă şi aşa mai departe până când se obţine o cifră. Evident, nu toate numerele naturale sunt numere
magice. De exemplu, uşa cu numărul 1234 poate fi deschisă cu cheia inscripţionată cu cifra 1 deoarece 1234 este
un număr magic ce poate fi redus la cifra 1 prin complementări repetate
(1234321012321012101), iar uşa cu numărul 1204 nu poate fi deschisă deoarece 1204 nu este
un număr magic (indiferent de câte ori s-ar repeta complementarea nu poate fi redus la o cifră:
12043240120432401204 ….).
Înainte să dispară, Iepurele Alb îi dădu o cheie aurie inscripţionată cu cifra K şi o avertiză că poate deschide
cu această cheie doar uşile cu numere magice ce pot fi reduse la cifra K.

Cerinţe. Scrieţi un program care să citească numerele naturale N, K şi cele N numere naturale scrise pe cele N uşi,
şi care să determine:
a) cel mai mare număr par dintre numerele scrise pe cele N uşi;
b) numărul uşilor care pot fi deschise cu cheia aurie inscripţionată cu cifra K.
Date de intrare. Fişierul alice.in conţine:
− pe prima linie cele două numere naturale N şi K, separate printr-un spaţiu;
− pe a doua linie N numere naturale, separate prin câte un spaţiu, reprezentând numerele scrise pe cele N uşi.

Date de ieşire. Fişierul alice.out va conţine:


− pe prima linie, un număr natural reprezentând cel mai mare număr par dintre numerele scrise pe cele N uşi;
− pe a doua linie, un număr natural reprezentând numărul uşilor care pot fi deschise cu cheia aurie inscripţionată
cu cifra K.
Restricţii şi precizări:
− complementarea cifrelor unui număr natural faţă de cifra sa maximă din scrierea zecimală constă în înlocuirea
fiecărei cifre c din număr cu diferenţa dintre cifra maximă şi cifra c; de exemplu, cifra maximă a numărului
1234 este 4 iar prin complementare se înlocuieşte cifra 1 cu 3(=4-1), cifra 2 cu 2(=4-2), cifra 3 cu 1
(=4-3) şi cifra 4 cu 0(=4-4) rezultând numărul 3210;
− 7  N  10000; 0  K  9;
− pe fiecare uşă este scris un singur număr natural;
− există cel puţin o uşă pe care este scris un număr par;
− numărul scris pe oricare uşă (din cele N) este mai mare sau egal cu 10 şi mai mic sau egal cu 32800;
− pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctaj, iar pentru rezolvarea corectă a ambelor
cerinţe se acordă 100% din punctaj.
Exemplu:
alice.in alice.out Explicaţii
7 1 1234 a) Sunt N=7 uşi pe care sunt scrise numerele 1204, 1234, 13,
1204 1234 13 195 23 10 888 3 195, 23, 10, 888. Cel mai mare număr par dintre cele scrise pe
uşi este 1234, număr care se va scrie pe prima linie a fişierului
alice.out.
b) Cheia primită este inscripţionată cu cifra K=1 şi deschide 3
uşi cu numerele 1234, 23 şi 10 deoarece numerele magice
dintre cele scrise pe uşi sunt: 1234 (12343210123210
12101), 13(13202), 195(195804844),
23(23101), 10(101), 888 (8880). Numărul 1204 nu
este un număr magic. Astfel numărul 3 se va scrie pe a doua
linie a fişierului alice.out.
Timp maxim de executare/test: 1 secundă
Limite de memorie: total memorie disponibilă 2 MB, din care pentru stivă maxim 2 MB
Dimensiunea maximă a sursei 10 KB
Problema 2 - porumb 100 puncte

Locuitorii planetei Agria, numiţi agri, au hotărât ca în celebrul an 2012 să le explice pământenilor cum
trebuie cules „eficient” un rând cu n porumbi, numerotaţi, în ordine, cu 1, 2, 3,..., n.
Cei n porumbi sunt culeşi de mai mulţi agri. Primul agri merge de-a lungul rândului, plecând de la primul
porumb şi culege primul porumb întâlnit, al treilea, al cincilea şi aşa mai departe până la capătul rândului.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Atunci când ajunge la capătul rândului, porneşte al doilea agri şi culege porumbi respectând aceeaşi regulă
ca şi primul agri.
Metoda se repetă până când toţi porumbii sunt culeşi.
Pământeanul Ionel încearcă să descopere ce ascunde această metodă şi se gândeşte câţi porumbi culege
primul agri, câţi agri culeg un rând cu n porumbi, la a câta trecere este cules porumbul cu numărul x şi care este
numărul ultimului porumb cules.
Exemplu: Dacă pe un rând sunt n=14 porumbi atunci sunt 4 agri care culeg porumbii:
 primul agri culege porumbii 1,3,5,7,9,11,13;

 al doilea agri culege porumbii 2,6,10,14;

 al treilea agri culege porumbii 4 şi 12;

 ultimul agri culege porumbul 8.

Cerinţe. Pentru a-l ajuta pe Ionel să descopere secretul acestei metode, scrieţi un program care citeşte cele două
numere naturale n şi x şi care determină:
a) numărul de porumbi culeşi de primul agri;
b) numărul de agri care culeg şirul de n porumbi;
c) numărul trecerii la care este cules porumbul cu numărul x;
d) numărul ultimului porumb cules.
Date de intrare. Fişierul porumb.in conţine pe prima linie, separate printr-un spaţiu, cele două numere
naturale n şi x cu semnificația din enunţ.
Date de ieşire. Fişierul de ieşire porumb.out va conţine patru linii:
− pe prima linie se va scrie un număr natural reprezentând numărul de porumbi culeşi de primul agri;
− pe a doua linie se va scrie un număr natural reprezentând numărul de agri care culeg cei n porumbi;
− pe a treia linie se va scrie un număr natural, reprezentând numărul trecerii la care este cules porumbul x;
− pe a patra linie se va scrie un număr natural, reprezentând numărul ultimului porumb cules.

Restricţii şi precizări:
− 1≤x≤n≤1000000000
− Trecerile se numerotează în ordine, începând cu valoarea 1.
− Pentru rezolvarea corectă a cerinţei a) se acordă 10% din punctaj.
− Pentru rezolvarea corectă a cerinţelor a) şi b) se acordă 40% din punctaj.
− Pentru rezolvarea corectă a cerinţelor a), b) şi c) se acordă 70% din punctaj.
− Pentru rezolvarea corectă a celor patru cerinţe se acordă 100% din punctaj.
Exemplu:
porumb.in porumb.out Explicaţii
14 4 7 7 reprezintă numărul de porumbi culeşi de primul agri.
4 Sunt 4 agri care culeg rândul cu n=14 porumbi.
3 Porumbul x=4 este cules la a 3-a trecere iar ultimul porumb cules
8 are numărul 8.
Timp maxim de executare/test: 1 secundă
Limite de memorie: total memorie disponibilă 2 MB, din care pentru stivă maxim 2 MB
Dimensiunea maximă a sursei 10 KB

Problema 1 – cifru cls a VI-a 100 puncte


Costel a descoperit într-o debara servieta cu cifru a tatălui său. Cifrul este compus din 4 discuri metalice pe care
sunt inscripţionate cifrele de la 0 la 9. Fiecare disc se poate mişca individual, de sus în jos sau de jos în sus,
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

formându-se combinaţii de cifre. De multe ori, datorită comodităţii, combinaţia ce permite deschiderea servietei
este formată numai din cifre identice: 0000, 1111 etc.
Costel îşi imaginează un cifru compus din N discuri metalice, fiecare având inscripţionate cifrele de la 0 la 9,
fiecare putând fi deplasat în cele două direcţii specificate anterior. Prin mutare Costel înţelege deplasarea unui disc
în sus sau în jos, cu o singură poziţie, adică deplasarea discului până la cifra precedentă, respectiv următoare celei
curente.
Cerinţă
Realizaţi un program care, cunoscând poziţia iniţială a fiecărui disc dintre cele N discuri ale cifrului, determină şi
afişează:
a) cifra cea mai mare care apare pe discurile cifrului în forma iniţială;
b)
b1) numărul minim de mutări necesare pentru ca numărul obţinut pe cifru să fie compus numai din cifre
identice, număr necesar deschiderii servietei;
b2) cifra cea mai mică ce se poate obţine în urma efectuării numărului minim de mutări determinat;
b3) numărul de combinaţii formate din cifre identice, care se poate obţine în urma efectuării numărului
minim de mutări determinat.
Date de intrare
Fişierul cifru.in conţine:
 pe prima linie numărul natural N reprezentând numărul discurilor;
 pe următoarele N linii câte o cifră, reprezentând cifra curentă de pe fiecare disc al cifrului.

Date de iesire
În fişierul cifru.out se vor afişa, pe linii separate, cele 4 valori solicitate.

Restricţii şi precizări
 1 < N ≤ 100 000
 Un disc poate să rămână nemişcat.
 Pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctajul fiecărui test.
 Pentru rezolvarea corectă a cerinţei b1) se acordă 40% din punctajul fiecărui test, pentru rezolvarea corectă
a cerinţelor b1) şi b2) se acordă 60% din punctajul fiecărui test, iar pentru rezolvarea corectă a cerinţelor
b1), b2) şi b3) se acordă 80% din punctajul fiecărui test.

Exemplu:
cifru.in cifru.out Explicaţii
4 9 Avem un cifru cu 4 discuri. Iniţial, cifrul este în starea 7390 (primul disc este
7 7 poziţionat pe cifra 7, al doilea pe cifra 3 etc.)
3 0 Cea mai mare cifră de pe cifru este cifra 9.
9 2
Numărul minim de mutări este 7 şi se poate obţine în două moduri:
0
1. Deplasăm primul disc cu 2 poziţii în sus, al doilea disc cu 4 poziţii în jos, al treilea
rămâne nemişcat, iar ultimul se deplasează cu o poziţie în jos. Combinaţia obţinută
este 9999.
2. Deplasăm primul disc cu 3 poziţii în sus, al doilea disc cu 3 poziţii în jos, al treilea
cu o poziţie în sus, iar ultimul rămâne nemişcat. Combinaţia obţinută este 0000.
Astfel, cifra cea mai mică ce formează combinaţia cu număr minim de mutări este 0.
Avem 2 combinaţii care se pot obţine în numărul minim de mutări determinat: 0000
şi 9999.
Timp maxim de executare/test: 1 secundă
Total memorie disponibilă/stivă: 2 MB/2 MB

Problema 2 – flori 100 puncte


Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Lizuca are n flori ornamentale de înălţimi h1, h2, ..., hn, exprimate în centimetri. Pentru a uda plantele,
Lizuca stabileşte următorul program: în prima zi va alege o plantă pe care o va uda, în a doua zi va alege două
plante pe care le va uda, în ziua a treia va alege trei plante pe care le va uda şi aşa mai departe. Dacă o plantă este
udată într-o anumită zi, atunci creşte 1 centimetru până la sfârşitul acelei zile, iar dacă nu este udată, rămâne la
înălţimea pe care o avea la sfârşitul zilei precedente.

Cerinţă
Scrieţi un program care determină:
a) un număr natural S, exprimat în centimetri, reprezentând suma înălţimilor finale ale tuturor plantelor, dacă
Lizuca le-ar uda după procedeul descris, timp de n zile;
b) un număr natural K, reprezentând numărul maxim de zile în care Lizuca poate uda florile după procedeul
descris anterior, astfel ca la sfârşitul celei de a K-a zi, nicio plantă ornamentală să nu atingă înălţimea H.

Date de intrare
Prima linie a fişierului flori.in conţine două numere naturale n şi H, separate printr-un spaţiu, având
semnificaţia din enunţ.
Linia a doua conţine n numere naturale: h1, h2, ..., hn, separate prin câte un singur spaţiu, reprezentând
înălţimile iniţiale ale plantelor.

Date de ieşire
Fişierul flori.out va conţine pe prima linie un număr natural S având semnificaţia descrisă în cerinţa
a).
A doua linie va conţine un număr natural K, având semnificaţia descrisă în cerinţa b).

Restricţii şi precizări
 1 ≤ N, H ≤ 100
 1 ≤ h1, h2, ... hn < H
 O plantă poate fi udată o singură dată pe zi.
 Pentru rezolvarea corectă a cerinţei a) se acordă 30 % din punctajul total pentru fiecare test.
 Pentru rezolvarea corectă a cerinţei b) se acordă 70 % din punctajul total pentru fiecare test.

Exemple
flori.in flori.out Explicaţie - cerinţa b)
3 4 10 Dacă în prima zi se udă planta 3, atunci înălţimile devin:
2 1 1 2 2 1 2
Dacă în a doua zi se udă plantele 1 şi 2, atunci înălţimile devin:
3 2 2
Procedeul se opreşte aici, deoarece în ziua a treia, ar trebui să se
ude toate plantele, iar planta 1 ar ajunge să aibă înălţimea 4

flori.in flori.out Explicaţie - cerinţa b)


4 5 17 Dacă în prima zi se udă planta 1, atunci înălţimile devin:
1 3 2 1 3 2 3 2 1
Dacă în a doua zi se udă plantele 1 şi 4, atunci înălţimile devin:
3 3 2 2
Dacă în a treia zi se udă plantele 1, 3 şi 4, atunci înălţimile
devin: 4 3 3 3.

Timp maxim de execuţie/test: 1 secundă


Memorie totală disponibilă: 4 MB, din care 3,5 MB pentru stivă.

Problema 1 – arme cls a VII-a 100 puncte


Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Vasile joacă (din nou!) jocul său preferat cu împuşcături. Personajul său are la brâu N arme, aşezate în N huse
speciale, numerotate de la 1 la N. Arma din husa i are puterea pbi (1≤i≤N).
În camera armelor a găsit M arme, aşezate pe perete, în M locaţii, numerotate de la 1 la M. Pentru fiecare armă j
(1≤j≤M) este cunoscută puterea sa pcj.
Vasile poate înlocui arme pe care le are la brâu cu arme aflate pe perete în camera armelor. La o înlocuire el ia
arma de pe perete din locaţia j (1≤j≤M) şi o pune la brâu în husa i (1≤i≤N), iar arma din husa i o pune pe perete
în locaţia j.

Cerinţă
Scrieţi un program care să determine suma maximă a puterilor armelor pe care le va avea la brâu Vasile după
efectuarea înlocuirilor.

Date de intrare
Fişierul de intrare arme.in conţine pe prima linie numerele naturale N M, reprezentând numărul de arme pe care le
are la brâu, respectiv numărul de arme aflate în camera armelor. Pe a doua linie se află N numere naturale pb1
pb2 ... pbN reprezentând în ordine puterile armelor pe care Vasile le are la brâu. Pe a treia linie se află M numere
naturale pc1 pc2 ... pcM reprezentând în ordine puterile armelor aflate în camera armelor. Numerele scrise pe
aceeaşi linie sunt separate prin spaţiu.

Date de ieşire
Fişierul de ieşire arme.out va conţine o singură linie pe care va fi scrisă suma maximă a puterilor armelor de la
brâul lui Vasile, după efectuarea înlocuirilor.

Restricţii
 1 ≤ N, M ≤ 1000
 Puterile armelor sunt numere naturale ≤10000.

Exemplu
arme.in arme.out
3 2 16
3 1 7
4 5

Timp maxim de execuţie/test: 0.2 secunde


Memorie totală: 2MB din care 1MB pentru stivă.
Dimensiunea maximă a sursei 5KB.

Problema 2 - triunghi 100 puncte


Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Se consideră un triunghi alcătuit din numere naturale scrise pe n linii ca în figura alăturată. Liniile
triunghiului sunt numerotate de la 1 la n, începând cu linia de la baza triunghiului (linia de jos), iar
poziţiile pe linie sunt numerotate începând cu 1 de la stânga la dreapta.
69
Fiecare număr din triunghi, exceptând pe cele de pe linia 1, este egal cu
suma numerelor aflate imediat sub el, în stânga şi respectiv în dreapta
35 34
lui.

Cerinţă 19 16 18
Cunoscând câte un număr de pe fiecare linie a triunghiului, determinaţi
toate numerele de pe linia 1. 10 9 7 11

Date de intrare
3 7 2 5 6
Fişierul de intrare triunghi.in conţine pe prima linie numărul
natural n reprezentând numărul de linii din triunghi. Pe următoarele n linii sunt descrise informaţiile
despre triunghi. Mai exact, pe linia i (1≤i≤n) dintre cele n se află două numere naturale separate prin
spaţiu pi vi indicând poziţia şi respectiv valoarea numărului cunoscut de pe linia i a triunghiului.

Date de ieşire
Fişierul de ieşire triunghi.out va conţine o singură linie, pe care se găsesc n numere naturale
separate prin câte un spaţiu, reprezentând în ordinea de la stânga la dreapta numerele scrise pe linia 1 a
triunghiului.

Restricţii
 1  n  1000
 1  pi  n+1-i, pentru 1≤i≤n
 Toate numerele din triunghi sunt numere naturale cu cel mult 18 cifre.
 Pentru elevii care implementează în C: când utilizaţi MINGW, dacă citiţi/afişati valori de tip long
long int folosind scanf(), respectiv printf() utilizaţi specificatorul de format %I64d.

Exemplu
triunghi.in triunghi.out Explicaţii
5 1 2 3 4 2 Triunghiul este:
4 4 45
2 5 20 25
3 13 8 12 13
2 25 3 5 7 6
1 45 1 2 3 4 2

Timp maxim de execuţie/test: 0.2 secunde


Memorie totală: 20MB din care 10MB pentru stivă.
Dimensiunea maximă a sursei 5KB.

Problema 1-magic 100 puncte


Rămaşi singuri în pădure, Hansel şi Grettel, ştiu că singura lor şansă de supravieţuire este să găsească şi să intre în
Castelul de Turtă Dulce. Poarta castelului este închisă şi pentru a intra este nevoie de un cuvânt magic şi de un
număr fermecat.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Zâna cea Bună îi vede pe copii şi pentru că vrea să–i ajute le spune:
„Mergeţi tot înainte, iar în drumul vostru o să întâlniţi copaci pe a căror trunchiuri sunt scrise caractere
reprezentând litere sau cifre. Cuvântul magic este format din toate caracterele literă în ordinea în care apar, dar
scrise toate cu majuscule. Numărul fermecat este cel mai mic număr cu cifre distincte care se poate forma din
caracterele cifră.”

Cerinţe:
Pentru a-i ajuta pe Hansel şi Grettel să intre în Castelul de Turtă Dulce, scrieţi un program care citeşte un număr
natural n, apoi n caractere şi determină:
e) cuvântul magic;
f) numărul fermecat;
Date de intrare
Fişierul magic.in conţine pe prima linie un număr natural n, reprezentând numărul de caractere scrise pe
copaci. Pe cea de a doua linie sunt n caractere separate prin câte un spaţiu, reprezentând caracterele scrise pe
copaci.

Date de ieşire
Fişierul de ieşire magic.out va conţine două linii:
a) pe prima linie se va scrie un şir de litere mari, reprezentând cuvântul magic;
b) pe a doua linie se va scrie un număr natural cu cifre distincte, reprezentând numărul fermecat.

Restricţii şi precizări:
 1≤n≤1000
 Caracterele sunt doar cifre sau litere mici ale alfabetului englez.
 Printre cele n caractere se află întotdeauna cel puțin o literă şi cel puţin o cifră.
 Pe fiecare copac este scris un singur caracter.
 Numărul magic începe întotdeauna cu o cifră diferită de zero.

Pentru rezolvarea cerinţei a) se acordă 40% din punctaj, pentru cerinţa b) 60% din punctaj

Exemplu:
magic.in magic.out Explicaţii
6 CB Cel mai mic număr cu cifre distincte ce
c 2 5 5 b 2 25 se poate obţine este 25.
8 CABD Cel mai mic număr cu cifre distincte ce
c a 5 0 b 2 5 d 205 se poate obţine este 205.

Timp maxim de execuţie/test: 1 secundă

Problema 2 - numerus 100 puncte


La ora de matematică distractivă, domnul profesor Numerus propune
elevilor săi să completeze cu numere naturale o grilă cu 6 coloane
numerotate cu literele A, B, C, D, E şi F şi cu un număr infinit de linii.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

Grila va fi completată cu numere naturale, începând cu numărul 1. Pe liniile impare completarea se va face de la
stânga la dreapta, iar pe cele pare de la dreapta la stânga. Ultimul număr de pe o linie va fi identic cu penultimul
număr (în sensul completării) de pe aceeaşi linie. În figura alăturată aveţi completate primele 7 linii ale grilei.
Deoarece pe tablă sau pe o foaie de hârtie numărul de linii este limitat, deci grila poate fi efectiv completată doar
pentru un număr mic de linii, domnul profesor Numerus doreşte ca elevii săi să determine, cu ajutorul
calculatorului, imaginea unei anumite linii a grilei şi locul sau locurile pe care se poate afla un număr natural dat.

Cerinţe:
Deduceţi regula după care se completează linia k a grilei şi scrieţi un program care să citească numerele naturale k
şi n şi care să determine:
g) numerele naturale de pe linia k, vizualizate de la stânga la dreapta;
h) linia pe care se află în grilă numărul natural n;
i) coloana sau coloanele pe care se află în grilă numărul natural n.
Date de intrare
Fişierul numerus.in conţine o singură linie pe care sunt scrise două numere naturale k şi n, separate pritr-un
spaţiu.
Date de ieşire
Fişierul de ieşire numerus.out va conţine 3 linii:
c) pe prima linie, se vor scrie numerele de pe linia k a grilei;
d) pe a doua linie, se va scrie un număr natural reprezentând linia pe care se află în grilă numărul natural n;
e) pe a treia linie, se va scrie litera sau literele care reprezintă coloana, respectiv coloanele pe care se află în
grilă numărul natural n; în situaţia în care avem de afişat două litere acestea se vor afişa cu un spaţiu între ele.

Restricţii şi precizări:
 Numerele k şi n sunt naturale nenule
 5 ≤ k  200000000
 1 ≤ n ≤ 999999999

Pentru rezolvarea cerinţei a) se acordă 40% din punctaj, pentru cerinţa b) 30% din punctaj şi pentru cerinţa c) 30%
din punctaj.

Exemplu:
numerus.in numerus.out Explicaţii
10 40 50 50 49 48 47 46
8
A B

Timp maxim de execuţie/test: 1 secundă

Problema 1 – carte cls a VI-a 100 puncte

Rareş a primit în dar o carte în care paginile sunt amestecate. Se hotărăşte totuşi să o citească, răsfoind
cartea într-un singur sens, de la prima pagină către ultima, în ordinea aşezării lor în carte, respectând
următorul algoritm:
„Caută la început pagina numerotată cu x=1.
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

După ce a citit o pagină cu numărul x caută printre paginile următoare acestei pagini, răsfoind
cartea, pagina cu numărul x+1, fără a căuta printre paginile aşezate înaintea paginii cu numărul x. Dacă o
găseşte atunci va continua lectura în acelaşi mod, iar dacă nu o găseşte atunci va închide cartea şi, în ziua
următoare, va relua lectura de la pagina cu numărul x+1, pe care mai întâi o va caută răsfoind cartea de la
început.
Rareş va proceda la fel şi în zilele următoare până când va citi întreaga carte”.

Cerinţă
Scrieţi un program care citeşte un număr natural n, reprezentând numărul paginilor din carte şi n numere
naturale distincte x1, x2,…, xn, reprezentând ordinea în care sunt aşezate cele n pagini în carte, şi care
determină:
a) numărul zilelor în care Rareş citeşte cartea;
b) prima zi în care Rareş a citit cele mai multe pagini şi numărul paginilor citite în acea zi.

Date de intrare
Fişierul de intrare carte.in conţine pe prima linie numărul n al paginilor din carte iar pe linia
următoare n numere întregi distincte x1, x2, …, xn, separate prin câte un spaţiu, reprezentând ordinea în
care sunt aşezate paginile în carte.

Date de ieşire
Fişierul de ieşire carte.out va conţine pe prima linie, separate prin câte un spaţiu, trei numere,
reprezentând, în ordine :
 numărul zilelor în care Rareş citeşte cartea;
 numărul primei zile în care Rareş a citit cele mai multe pagini;
 numărul maxim de pagini citite într-o zi.

Restricţii şi precizări
 0 < n < 10001
 paginile cărţii sunt numerotate cu numere naturale distincte de la 1 la n;
 citirea cărţii presupune citirea fiecărei pagini din carte, o singură dată;
 zilele în care Rareş citeşte cartea sunt numerotate consecutiv, începând cu numărul 1;
 pentru rezolvarea corectă a subpunctului a) se acordă 40% din punctaj şi pentru fiecare cerinţă a
subpunctului b) câte 30% din punctaj.

Exemplu
carte.in carte.out Explicaţii
9 4 2 3 - în prima zi şi citeşte paginile: 1,2
7 1 3 6 8 2 4 9 5 - în a doua zi şi citeşte paginile : 3,4,5
- în a treia zi şi citeşte pagina 6
- în a patra zi şi citeşte paginile: 7,8,9
A terminat de citit cartea în 4 zile iar ziua 2 este
prima zi în care a citit cele mai multe pagini (3).
Timp maxim de executare/test: 1 secundă.

Problema 2 – grad 100 puncte

Se consideră un şir x1, x2, ..., xn de n numere naturale distincte, două câte două. Pentru o secvenţă de k numere
(xp, xp+1, ..., xp+k-1), care începe cu numărul de pe poziţia p din şirul dat, definim gradul său ca fiind numărul de
numere din secvenţă, care rămân pe aceleaşi poziţii după ordonarea crescătoare a secvenţei. De exemplu, pentru
n=7 şi şirul format din numerele: 1, 5, 7, 4, 6, 2, 9, secvenţa formată din numerele 7, 4, 6, 2
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

(corespunzătoare lui p=3 şi k=4) are gradul egal cu 2 deoarece, după ordonarea crescătoare a numerelor din
secvenţă, aceasta devine 2, 4, 6, 7, numerele 4 şi 6 rămânând pe aceleaşi poziţii.

Cerinţă
Scrieţi un program care citeşte numerele n, k, x1, x2, ..., xn, cu semnificaţia din enunţ, şi apoi determină:
d) gradul întregului şir de numere;
e) poziţia primului element din prima secvenţă de lungime k ce are gradul maxim, precum şi gradul acestei
secvenţe.

Date de intrare
Fişierul de intrare grad.in conţine pe prima linie numerele n şi k, separate printr-un spaţiu, iar pe linia
următoare n numere naturale distincte x1, x2, ..., xn, corespunzătoare şirului de numere, separate prin câte un
spaţiu.

Date de ieşire
Fişierul de ieşire grad.out va conţine pe prima linie un număr natural reprezentând gradul întregului şir de
numere, iar pe următoarea linie două numere naturale, separate printr-un singur spaţiu, primul număr reprezentând
poziţia primului element din prima secvenţă de lungime k ce are grad maxim şi cel de-al doilea număr reprezentând
gradul acestei secvenţe.

Restricţii şi precizări
 0 < n < 10001
 0 < k < n+1
 Numerele din şir sunt numere naturale strict mai mici decât 32000.
 O secvenţă de numere din şir reprezintă o succesiune de numere din acel şir, aflate pe poziţii consecutive.
 Gradul întregului şir de numere este egal cu gradul secvenţei de n numere care începe cu numărul de pe
poziţia 1 şi conţine toate cele n numere din şir.
 Pentru rezolvarea corectă a subpunctului a) se obţine 40% din punctaj.
 Pentru determinarea poziţiei primului element din prima secvenţă de lungime k ce are grad maxim, se
obţine 20% din punctaj, iar pentru determinarea gradului maxim de la subpunctul b) se obţine 40% din
punctaj.

Exemplu

grad.in grad.out Explicaţie


7 4 3 După ordonare, şirul 1 5 7 4 6 2 9 devine 1 2 4
1 5 7 4 6 2 9 3 2 5 6 7 9, pe aceleaşi poziţii rămân 1, 6 şi 9, deci gradul
întregului şir este 3.
Avem patru secvenţe cu câte 4 elemente:
1 5 7 4, care are gradul 1
5 7 4 6, care are gradul 0
7 4 6 2, care are primul număr pe poziţia 3 și gradul 2.
4 6 2 9, care are gradul 1.

Timp maxim de executare/test: 1 secundă.

Problema 1 – grupe cls a VII-a 100 puncte


Se consideră un tablou bidimensional cu m linii, n coloane şi elemente numere naturale. Pentru fiecare element
se determină numărul de divizori pozitivi. Se formează apoi grupe cu elementele tabloului care au acelaşi număr de
divizori, grupe notate G1,G2,...,Gk. Se ordonează descrescător grupele după numărul de elemente ce le conţin.
Se ştie că o grupă G1 se află în faţa unei alte grupe G2 dacă G1 are mai multe elemente decât G2 sau, în cazul în care
cele două grupe conţin acelaşi număr de elemente, numărul de divizori ai elementelor din grupa G1 este mai mare
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

decât numărul de divizori ai elementelor din grupa G2. După ordonarea descrescătoare a grupelor, notăm prima
grupă cu A şi a doua grupă cu B. În cazul în care toate elementele vor avea acelaşi număr de divizori, va exista o
singură grupă, grupa A.
Cerinţe: Scrieţi un program care citeşte m,n, elementele tabloului şi afişează:
a) numărul de divizori pozitivi pentru grupa A, numărul de elemente din grupă şi cea mai mare valoare din
grupă;
b) numărul de divizori pozitivi pentru grupa B, numărul de elemente din grupă şi cea mai mare valoare din
grupă; în cazul în care nu există grupa a doua, se va afişa de trei ori valoarea 0.
Date de intrare:
Fişierul grupe.in conţine pe prima linie valorile lui m şi n separate printr-un spaţiu, iar pe celelalte m linii câte
n elemente separate două câte două printr-un spaţiu, reprezentând elementele tabloului.
Date de ieşire:
Fişierul grupe.out va conţine:
- pe prima linie valoarea numărului de divizori pozitivi din grupa A, numărul de elemente din grupa A şi cea
mai mare valoare din grupa A, valori separate două câte două printr-un singur spaţiu;
- pe a doua linie valoarea numărului de divizori pozitivi din grupa B, numărul de elemente din grupa B şi cea
mai mare valoare din grupa B, valori separate două câte două printr-un singur spaţiu.
Restricţii şi precizări:
- 0<m,n<101;
- elementele tabloului bidimensional iniţial sunt mai mici sau egale decât 100000 şi mai mari decât 1;
- o grupă poate fi compusă dintr-un singur element.
Se acordă punctaje parţiale:
- 50% pentru afişarea valorilor corecte pe prima linie din fişierul grupe.out (cerinţa a));
- 50% pentru afişarea valorilor corecte pe a doua linie din fişierul grupe.out (cerinţa b)).
Exemple:
grupe.in Grupe.out Explicaţie
2 3 4 2 10 Numărul divizorilor pentru fiecare element al tabloului: 5 divizori (pentru valoarea
16 2 4 2 2 5 16), 2 divizori (pentru valoarea 2), 3 divizori (pentru valoarea 4), 4 divizori (pentru
10 6 5 valoarea 10), 4 divizori (pentru valoarea 6) şi 2 divizori (pentru valoarea 5).
Se pot forma grupele: cu 2 divizori (elementele 2, 5), cu 4 divizori (elementele
10,6), cu 3 divizori (elementul 4) şi cu 5 divizori (elementul 16). După ordonarea
descrescătoare a grupelor, grupele cu cele mai multe elemente sunt cele care conţin
2 elemente: (10, 6), respectiv (2, 5). Pentru că elementele 10 şi 6 au 4 divizori, ele
vor face parte din grupa A, iar 2 şi 5, având doar 2 divizori fiecare, vor face parte
din grupa B. Deci grupa A are 4 divizori, 2 elemente şi cel mai mare element din
grupă este 10, iar grupa B are 2 divizori, 2 elemente şi cel mai mare element din
grupă este 5.
2 3 4 3 15 Numărul divizorilor pentru fiecare element al tabloului: 2 divizori (pentru valoarea
2 15 4 2 2 5 2), 4 divizori (pentru valoarea 15), 3 divizori (pentru valoarea 4), 4 divizori (pentru
10 6 5 valoarea 10), 4 divizori (pentru valoarea 6) şi 2 divizori (pentru valoarea 5). După
ordonarea descrescătoare a grupelor, grupa cu cele mai multe elemente este cea
formată din elementele 10, 6, 15, fiecare element având exact 4 divizori. Aceasta
va fi grupa A. Grupa B va fi cea formată din două elemente, celelaltă grupă având
un singur element. Deci grupa A are 4 divizori, 3 elemente şi cel mai mare element
din grupă este 15, iar grupa B are 2 divizori, 2 elemente şi cel mai mare element
din grupă este 5.
Timp maxim de execuţie/test: 1 secundă.

Problema 2 – litere 100 puncte


Algorel a primit un joc care conţine n jetoane pe care sunt scrise litere mari ale alfabetului. Fiecare literă
are asociat un cod format dintr-o singură cifră nenulă. Jetoanele se aşează în ordinea dată iniţial, iar prin citirea
literelor de pe acestea, de la primul la ultimul jeton, se formează un cuvânt. Dacă se citesc numerele de pe fiecare
jeton, începând de la primul la ultimul, se obţine un număr k1. Jocul continuă la fel, dar se aşează jetoanele
începând de la al doilea la ultimul, obţinându-se un nou număr k2. Apoi, se aşează jetoanele începând de la al
Ministerul Educaţiei Naţionale
Olimpiada de Informatică – etapa judeţeană Clasa a V-a
1 martie 2014 Sursa: ID1.cpp, ID1.c, ID1.pas

treilea la ultimul, obţinându-se un nou număr k3, ş.a.m.d. până se ajunge la aşezarea doar a ultimului jeton, caz în
care se obţine numărul kn.
Cerinţe:
Scrieţi un program care citeşte numărul n de jetoane, cele n litere asociate jetoanelor, precum şi codurile
asociate literelor, în ordinea apariţiei lor şi afişează:
a) numărul de perechi de litere consecutive din cuvântul iniţial care au proprietatea că o literă este
vocală şi cealaltă este consoană (ordinea lor nu contează);
b) numărul k1, format din aşezarea iniţială a jetoanelor;
c) suma k1+k2+…+kn.
Date de intrare:
Fişierul de intrare litere.in va conţine pe prima linie valoarea lui n, reprezentând numărul de
jetoane, pe a doua linie un cuvânt format din n litere mari (de la ’A’ la ’Z’); literele sunt scrise una după
alta, fără să fie separate cu spaţii, astfel încât prima literă este cea aflată pe primul jeton, a doua literă pe
al doilea jeton ş.a.m.d. Pe a treia linie din fişier se află un număr m ce reprezintă numărul de litere
distincte, iar pe a patra linie m valori reprezentând codurile literelor distincte ce apar în cuvânt. Codurile
sunt date în ordinea apariţiei literelor în cuvânt şi sunt numere naturale nenule formate dintr-o singură
cifră, separate printr-un spaţiu, pentru fiecare liter ă codul fiind dat o singură dată, chiar dac ă litera se
repetă.
Date de ieşire:
Fişierul de ieşire litere.out va conţine pe prima linie numărul de perechi de litere consecutive
din cuvânt care au proprietatea că o literă este vocală şi cealaltă consoană (ordinea lor nu contează), pe a
doua linie numărul k1, (format din aşezarea iniţială a jetoanelor), iar pe a treia linie suma k1+k2+…+kn.
Restricţii şi precizări:
- 0 < n ≤ 10000
- 0 < m < 27
Se acordă punctaje parţiale:
- 20% pentru afişarea valorii corecte pe prima linie din fişierul rezultat (cerinţa a));
- 40% pentru afişarea valorii corecte pe a doua linie din fişierul rezultat (cerinţa b));
- 40% pentru afişarea valorii corecte pe a treia linie din fişierul rezultat (cerinţa c)).

Exemple:

litere.in litere.out Explicaţie


3 0 Nu există perechi de litere consecutive care să îndeplinească cerinţa.
CSC 121 Sunt 2 litere distincte{’C’,’S’}, cod(’C’)=1, cod(’S’)=2.
2 143 k1 = 121‚ k2 = 21‚ k3 = 1‚ iar k1+k2+k3 = 121 + 21 + 1 = 143
1 2
6 5 Există 5 perechi de litere consecutive care să îndeplinească cerinţa: {’CA’,
CABABE 256567 ’AB’, ’BA’, ’AB’, ’BE’}.
4 320342
Sunt 4 litere distincte{’C’, ’A’, ’B’, ’E’}, cod(’C’)=2, cod(’A’)=5
2 5 6 7
cod(’B’)=6, cod(’E’)=7.
k1 = 256567‚ k2 = 56567‚ k3 = 6567‚ k4 = 567, k5 = 67, k6 = 7
iar k1+k2+k3+k4+k5+k6 = 256567 + 56567 + 6567 + 567 + 67 + 7 = 320342
Timp maxim de execuţie/test: 1 secundă.

S-ar putea să vă placă și