Model subiect olimpiada de informatică, clasa a 9-a, faza județeană

1  - Ace 100 puncte 
 
Pe o zonă în formă de dreptunghi cu laturile de lungim i N și M se găsesc NxM pătrate de latură  1. În 
centrul fiecărui pătrat se gă sește înfipt câte un ac de  grosime neglijabilă.  Fiecare ac este descris de 
înălțimea sa.  Această zonă se poate repre zenta ca un tablou bidimensional de dimensiuni N și M, iar 
fiecare element din matrice reprezintă înă lțimea ( număr natural nenul) fiecărui ac. În centrul pătratului 
(N,M) există  o cameră de luat vederi de ultimă generaț ie, mobilă, care se poate roti cu  3600 în orice 
plan, situată la nivelul solului . Dimensiunile camerei sunt neglijabile.  De exemplu , dacă avem zona sub 
forma: 
 
8 5 4 7 
2 7 4 6 
5 5 3 2 
6 6 3 0 
 
 
Pentru direcția N , camera  va vedea acul de coordonatele (3,4) – în to talitate, iar acul (2,4) se va 
vedea doar parțial . Acul (1,4) nu se vede pentru că este acoperit total de (2,4).  
În direcția V , camera va  vedea doar acul (4,3), deoarece (4,2)și (4,1)sunt acoperite total de 
(4,3). 
Pentru celelalte direcții se vor vedea parțial sau în totalitate acele (3,3), (3,2), (3,1), (2,3), 
(1,3), (2,2), (2,1),(1,2). Acul (1,1) nu se vede din cauza acului(2,2), care îl acoperă 
total. Acul (2,2) se vede doar parțial, pentru că o parte din el este acoperit de acul (3,3). 
 
Cerinţe 
1. Câte ace vede camera de luat vederi dacă se poate roti în plan vertical, doar în direcțiile N și V? 
2. Câte ace vede camera de luat vederi dacă se poate roti în orice plan și în orice direcții? 
 
Date de intrare    
Fișierul de intrare  ace.in conține pe prima linie  numărul P care poate fi 1 sau 2, pentru prima , 
respectiv a doua cerință. 
Pe a doua linie  se găsesc numerele N,M reprezentând dimensiunile tabloului, apoi pe următoarele N linii 
câte M numere naturale, despărțite prin câte un spațiu, reprezentând înălțimile acelor. 
Date de ieşire       
Fișierul de ieșire ace.out  va conține p e prima lin ie numărul de ace vă zute pentru cerinț ă indicată de 
valoarea numărului P. 
Restricţii și precizări   
• 2 ≤ N ≤ 1000 
• 2 ≤ M ≤ 1000 
• Elementele matricei sunt numere naturale nenule mai mici decât 1000, cu excepția numărului de 
pe linia N și coloana M care este 0.  
• Pentru rezolvarea corectă a cerinței 1 se acordă 20 puncte, pentru rezolvarea corectă a cerinței 2 se 
acordă  70 de puncte, iar din oficiu se acordă 10 de puncte. 
• Pentru cerința 2 există teste în valoare de 20 puncte cu N,M ≤ 50. 
• Pentru cerința 2 există teste în valoare de 45 puncte cu N,M ≤ 100. 
Din pătratul  (4,4), î n 
direcția N (nord), camera va 
obține Fig. 1, iar în  direcția V 
(vest)  va obține Fig. 2.  
 
 
7 
6  
2 
Fig 1 
6 
6  
3  
Fig 2 Ministerul Educaţiei Naționale 
Olimpiada de Informatică – etapa judeţeană liceu Clasa a IX-a                                       
11 martie 2017  
Sursa: ID1.cpp, ID1.c, ID1.pas
2: Admitere          100 puncte 
Să ne imaginăm faptul că la un anumit liceu există doar două clase per generație: una de Real și una de 
Uman. În prezent au loc înscrierile pentru clasa a IX-a. Cele două clase au fiecare câte M locuri 
disponibile, atât la Real, cât şi la Uman. Dacă lista de elevi înscriși la o anumită clasă conține mai mult de  
M elevi, vor fi admiși acei M elevi care au notele cele mai mari. Ambele clase au deja M elevi înscriși, iar 
pentru fiecare se știe nota cu care a fost înscris la clasa respectivă.  
Mai există însă N elevi, singurii încă neînscriși, care sunt privilegiați în acest proces (fiindcă au terminat 
gimnaziul la acest liceu). Privilegiul lor constă în următorul fapt: ei se pot înscrie acum, după ce 
înscrierile publice au fost încheiate , și se cunosc notele de înscriere la ambele clase. Fiecare din cei N 
elevi are câte două note: nota cu care ar fi înscris la Real și nota cu care ar fi înscris la Uman (acestea pot 
fi diferite, deoarece examenele de admitere de la cele două clase diferă). Fiecare din cei N elevi va alege 
să se înscrie în maxim o clasă. Ei își vor coordona alegerile astfel încât să maximizeze numărul de 
elevi admiși. Deoarece calculele devin destul de complicate, aceștia s-ar putea folosi de ajutorul vostru. Ei 
doresc răspunsul la următoarele două întrebări: 
Cerinţe: 
(1) Care este numărul maxim de elevi privilegiaţi care pot fi admiși dacă se pune restricția suplimentară 
ca toți elevii privilegiați admiși să fie admiși la aceeași clasă? 
(2) Care este numărul maxim de elevi privilegiaţi care pot fi admiși dacă aceștia se pot înscrie la clase 
diferite? 
Date de intrare  
Fişierul de intrare admitere.in  conţine pe primul rând o valoare egală cu  1 sau 2,  reprezentând 
cerința ce urmează a fi rezolvată. Următoarea linie conține cele două numere N și M. Pe al treilea rând se 
află M numere, separate prin  câte un  spaţiu, reprezentând notele cu care au fost înscriși elevii care 
formează momentan clasa de Real. Pe al patrulea rând se află M numere, separate prin  câte un spaţiu, 
reprezentând notele cu care au fost înscriși elevii care formează momentan clasa de Uman. Următoarele N 
linii vor conține câte o pereche de numere R[i], U[i], separate prin câte un spaţiu, reprezentând nota 
cu care al i-lea elev privilegiat s-ar înscrie la clasa de Real, respectiv la clasa de Uman. 
Date de ieşire 
Fișierul de ieșire admitere.out va conține pe prima linie valoarea MAX: numărul maxim de elevi 
privilegiaţi admiși. A doua linie va  conține un șir de  N caractere din mulțimea {'R', 'U', 'X'}, 
care va descrie scenariul optim. Dacă al i-lea elev va fi înscris la Real, al i-lea caracter va fi egal cu 
'R'. Dacă al i-lea elev va fi înscris la Uman, al i-lea caracter va fi egal cu 'U'. Dacă acesta nu va fi 
înscris nicăieri, al i-lea caracter va fi egal cu 'X'.   
Deoarece elevii nu vor să depună efort inutil, un elev privilegiat care nu va fi admis în scenariul optim nu 
se va înscrie la nicio clasă. Cu alte cuvinte, pentru ca scenariul descris să fie considerat corect este 
necesar ca exact MAX caractere din șir să fie diferite de 'X'. 
 
 Ministerul Educaţiei Naționale 
Olimpiada de Informatică – etapa judeţeană liceu Clasa a IX-a                                        
11 martie 2017  
Sursa: ID2.cpp, ID2.c, ID2.pas 
 
 
Restricţii şi precizări 
• 1 ≤ N, M ≤ 2000 
• Teste în valoare totală de 25 de puncte vor solicita rezolvarea cerinței (1) , iar r estul de 65 de 
puncte vor solicita rezolvarea cerinței (2). Din oficiu sunt acordate 10 puncte. 
• Pentru cerința (2), teste în valoare totală de 45 de puncte vor avea 1 ≤ N, M ≤ 150 
• Toate cele N + M note pentru clasa de Real sunt distincte două câte două. Același lucru este 
valabil și în cazul notelor pentru clasa de Uman. 
• Toate notele sunt numere naturale din intervalul [1, 4000].  
• Notele elevilor deja înscriși de la clasa de Real, respectiv Uman vor fi date în ordine crescătoare. 
• În cazul în care există mai multe soluții corecte, este acceptată oricare dintre acestea.
3 -  roboți                       100 puncte 
 
Ștefan a împlinit 15 ani. Fiind un pasionat membru al Clubului de Robotică, familia i-a dăruit de ziua lui 
foarte mulți roboți, fiecare dotat cu o armă de o anumită putere. El a așezat toți roboții în jurul său, pe 
circumferința unui cerc imaginar , în sensul acelor de ceasornic . Aceste dispozitive inteligente pot 
comunica între ele, unindu-și puterile armelor.    
 
Cerinţe 
Cunoscând numărul de roboți, precum și puterea fiecăruia, să se scrie un program care determină: 
1. Dimensiunea celei mai lungi secvențe de roboți pentru care puterile armelor lor formează un șir 
strict crescător.  
2. O aranjare a roboților pe cerc, astfel încât suma produselor de câte două puteri vecine să fie 
maximă. Dacă există mai multe modalităţi de aranjare astfel încât să se obţină aceeaşi sumă 
maximă, se va determina cea minimă din punct de vedere lexicografic.  
Date de intrare 
Pe prima linie a fișierului de intrare roboti.in se găsește un număr natural v a cărui valoare poate fi 
doar 1 sau 2.  
Pe a doua linie a fișierului de intrare se găsește un singur număr natural n reprezentând numărul de 
roboți. 
Pe a treia linie a fișierului de intrare se găsesc n numere naturale p1, p2, ..., pn, separate  prin 
câte un spațiu, pi reprezentând puterea armei robotului i.  
 
Date de ieşire 
Dacă valoarea lui v este 1, atunci fişierul de ieşire roboti.out va conţine pe prima linie un singur 
număr natural reprezentând dimensiunea celei mai lungi secvențe de roboți pentru care puterile armelor 
lor formează un șir strict crescător. 
Dacă valoarea lui v este 2, atunci fişierul de ieşire va conţine pe prima linie  n numere naturale separate 
prin câte un spaţiu, reprezentând puterile celor n roboți așezați pe cerc astfel încât suma produselor de 
câte două puteri vecine să fie maximă, iar aşezarea să fie minimă din punct de vedere lexicografic. 
 
Restricţii și precizări 
• 2 ≤ n ≤ 100000 
• Pentru cerinţa 1, secvenţa de lungime maximă se alege pe cerc în sensul acelor de ceasornic. 
• Dacă avem două şiruri de numere a1,a2,…,an şi b1,b2, …,bn şi există 1≤k≤n, cea mai 
mică poziţie, pentru care are loc a1=b1, a2=b2,…,ak-1=bk-1 şi ak<bk, atunci spunem că 
şirul a este mai mic lexicografic decât şirul b. 
• Pentru rezolvarea corectă a cerinței 1 se acordă 30 puncte, pentru rezolvarea corectă a cerinței 2 
se acordă  60 de puncte, iar din oficiu se acordă 10 puncte. 
• Pentru cerința 2, dacă soluția afișată nu este minimă  lexicografic, dar produce suma maximă 
corectă se acordă 50% din punctajul testului respectiv. 
• Pentru cerința 2, teste în valoare totală de 36 puncte vor avea n ≤ 1000. 
• 1 ≤ p1,p2,...,pn ≤ 1000. Ministerul Educaţiei si Cercetării Știintifice 
Olimpiada Judeţeană de Informatică                    Clasa a IX-a 
11 martie 2017 
Sursa: ID3.c, ID3.cpp, ID3.pas