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

1 - cool                       100 puncte 
Se consider ă un șir A format din  N elemente naturale nenule .  Numim secvență  de lungime K a șirului A orice 
succesiune de elemente consecutive din șir de forma Ai, Ai+1,…, Ai+K-1.  
O secvență o numim secvență cool dacă elementele care o compun sunt distincte și pot fi rearanjate astfel încât să 
alcătuiască o secvență continuă de numere consecutive.  
De exemplu, consider ând șirul A=(3,1,6,8,4,5,6,7,4,3,4), atunci secvența (8,4,5,6,7) este o 
secvență cool deoarece conține elemente distincte ce pot fi rearanjate astfel încât să alcătuiască șirul de numere 
consecutive 4,5,6,7,8, pe când secvențele (4,3,4), (6,7,4,3) nu sunt considerate secvențe cool. 
Cerinţă 
Fiind dat un şir de N numere naturale nenule se cer următoarele:  
1. Pentru o valoare dată K să se verifice dacă secvența A1, A2,…, AK este secvență cool. Dacă secvența este cool, 
atunci se va afișa cea mai mare valoare ce aparține secvenței. Dacă secvența nu este cool , atunci se va afișa 
numărul elementelor distincte din secvența   A1, A2,…, AK, adică numărul elementelor care apar o singură 
dată.  
2. Lungimea maximă a unei secvențe cool și numărul secvențelor cool de lungime maximă. 
Date de intrare  
Fişierul de intrare cool.in conţine pe prima linie un număr natural  p. Pentru toate testele de intrare, 
numărul p poate avea doar valoarea 1 sau valoarea 2. Pe linia a doua se găsesc , despărțite printr-un spațiu, două 
numere naturale N K. P e următoarea linie se găsesc N numere întregi, separate prin  câte un  spațiu, ce reprezintă 
elementele şirului. 
Date de ieşire 
Dacă valoarea lui p este 1, atunci se va rezolva numai punctul 1  din cerință. În acest caz, fişierul de ieşire 
cool.out va conţine pe prima linie un număr natural, număr ce reprezintă conform cerinței 1, maximul secvenței 
A1,A2,…,AK, dacă secvența este secvență cool, sau numărul elementelor distincte din secvență, dacă aceasta nu este 
secvență cool. 
Dacă valoarea lui p este 2,  se va rezolva numai punctul 2 din cerință.  În acest caz, f işierul de ieşire 
cool.out va avea două linii. Prima linie va conține un număr natural nenul ce reprezintă lungimea maximă a unei 
secvențe cool, iar următoarea linie un număr natural nenul ce reprezintă  numărul de secvențe cool care au lungimea 
maximă.  
Restricţii și precizări 
• 1  N  5000 
• 2  K  1000  
• 1  A[i]  1000, 1  i  N  
• Pentru 30% dintre teste N  1000  
• Pentru rezolvarea primei cerinţe se acordă 20% din punctaj, iar pentru cerința a doua se acordă 80% din punctaj. 

2 – pseudobil                                                     100 puncte 
 
Suprafața plană a unei mese de pseudo-biliard este formată din n x n celule pătratice cu lungimea  
laturii egală cu 1 (o unitate),  lipite, dispuse pe n linii numerotate de la 1 la n și n coloane, numerotate 
de la 1 la n. Pe masă se așează K bile, fiecare bilă găsindu-se în centrul unei anumite celule a mesei. Un 
jucător dorește să plaseze  pe suprafața mesei  un cadru pătratic având lungimea diagonalei egală cu D 
unități.  
 
El trebuie să răspund ă la m întrebări de forma: x y. Fiecare întrebare are semnificația: câte bile 
se găsesc în interiorul sau pe laturile cadrului ?  
Cadrul se plasează astfel încât fiecare colț să fie poziționat în centrul unei celule, colțurile opuse 
să se găsească pe aceeași coloană, respectiv pe aceeași linie, iar colțul “de sus” să fie plasat în centrul 
celulei aflată pe linia x și coloana y. 
 
Cerinţă 
Cunoscând lungimea n a laturilor mesei, numărul m de întrebări, numărul K de bile așezate pe 
masă, pozițiile lor și lungimea D a diagonalei cadrului pătratic, se cere: 
1. Numărul de celule care se vor găsi în întregime în interiorul cadrului, dacă acesta se așează pe 
suprafața mesei, conform descrierii de mai sus. 
2. Câte un răspuns pentru fiecare dintre cele m întrebări. 
  
Date de intrare  
Fişierul de intrare pseudobil.in conţine pe prim a linie  un număr natural p. Pentru toate 
testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea  2. 
Pe linia a doua se găsesc numerele naturale n, K și D separate prin câte un spațiu. 
Pe fiecare dintre următoarele K linii, se găsesc c âte două numer e a și b (a, b ≤ n)  
reprezentând linia și coloana celulei în centrul căreia va fi așezată o bilă. 
Pe linia K + 3 se găsește un număr natural m.  
Următoarele m linii conțin câte două numere naturale x și y, reprezentând linia și coloana celulei 
în centrul căreia se va plasa colțul „de sus” al cadrului. 
 
Date de ieşire 
Dacă valoarea lui p este 1,  se va rezolva numai punctul 1 din cerință. În acest caz, î n fişierul 
de ieşire pseudobil.out se va scrie un singur număr natural n1, reprezentând numărul de celule care 
se vor găsi în întregime în interiorul cadrului.  
Dacă valoarea lui p este 2, se va rezolva numai punctul 2 din cerință. În acest caz, fişierul de 
ieşire pseudobil.out va conține  m linii. Pe fiecare linie i se va scrie câte un număr natural  n2, 
reprezentând răspunsul pentru întrebarea i. 
   
Restricţii şi precizări 
 
• 3 ≤ n ≤ 1500 
• 1 ≤ K ≤ 55 000 
• 2 ≤ D ≤ n – 1 , D – număr par 
• 1 ≤ m ≤ 100 000 
• Pozițiile cadrului sunt distince. 
• Se garantează pentru x și y valori pentru care cadrul este plasat în interiorul suprafeței mesei de 
pseudo-biliard. 
• Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, iar pentru cerința a doua se 
acordă 80 de puncte. 
• Pentru primele 35% dintre testele care verifică cerința 2,  m ≤ 1000  și n ≤  500 
• Pentru primele 75% din testele care verifică cerința 2,      m ≤ 10000 și n ≤ 1000 Ministerul Educaţiei Naționale 
Olimpiada Judeţeană de Informatică                    Clasa a IX-a 
1 martie 2014 
Sursa: ID2.c, ID2.cpp, ID2.pas