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

1  caps 100 puncte 
Miruna a descoperit un nou joc. Ea dispune de litere mari și mici ale alfabetului englez și construiește 
succesiv șiruri de litere din ce în ce mai lungi.   Ea definește operația CAPS a unei litere, ca fiind  
transformarea literei respective din literă mare în literă mică sau inverșdin litera mică în literă mare. 
Pentru fiecare șir ȘMiruna asociază un nou șir SC, numit șir CAPȘcare se obține aplicând operația 
CAPS asupra tuturor literelor din șirul S. Miruna a inventat o altă operație pentru un șir de litere Ș
numită NEXȚprin care obține un nou șir SN care are structura SScScS (este format în ordine de la stânga 
la dreapta din literele lui Șapoi de două ori succesiv literele șirului SC, iar apoi urmează din nou literele 
șirului S). De exemplu, șirul ui S="Ham" îi corespunde  șirul CAPS SC="hAM" și dac ă se aplică și 
operația NEXT asupra șirului Șobține șirul SN="HamhAMhAMHam". Inițial, Miruna  construiește un șir 
S de K litere. Apoi, ea c onstruiește un nou șir  obținut prin aplicarea operației NEXT asupra șirului S. 
Miruna dorește să obțină succesiv șiruri de litere din ce în ce mai lungi  aplicând operația NEXT asupra 
șirului construit în etapa precedentă.  
Astfel, pentru K=3 și S="Ham", Miruna va construi șirurile  "HamhAMhAMHam", 
"HamhAMhAMHamhAMHamHamhAMhAMHamHamhAMHamhAMhAMHam" și așa mai departe . Miruna 
continuă procedeul de construire până când obține un șir final suficient de lung.  
Cerințe 
Miruna vă roagă să răspundeți la Q întrebări de tipul: 
„Dacă se dă un număr natural N, ce literă este în șirul final pe poziția N și de câte ori a apărut această 
literă în șirul final, de la începutul șirului final până la poziția N inclusiv?”. 
Date de intrare 
Pe prima linie a fișierului caps.in se afl ă două numere naturale separate prin spațiu reprezentând 
valorile K (lungimea șirului inițial) și Q (numărul de interogări). Pe linia următoare se află șirul inițial S 
de lungime K. Pe următoarele Q linii se va afla câte un număr N, reprezentând cerința unei întrebări. 
Date de ieșire 
În fișierul de ieșir e caps.ouțse vor afla Q linii, iar pe fiecare linie câ te două valori separate cu un 
spațiu reprezentând răspunsul la o întrebare ( litera de pe poziția N în șirul final și numărul său de apariții 
până la poziția N inclusiv). 
Restricții și precizări  
• 1 <  K ≤  100000 
• 0 <  Q ≤  50000 
• 0 <  N ≤  1018 
• Pentru fiecare test se acordă 40% din punctaj dacă toate literele interogărilor din test sunt corecte 
și 60% din punctaj dacă toate numerele de apariții ale literelor, până la pozițiile N din interogările 
testului, sunt corecte.  
• Pentru teste în valoare de 15 puncte: K ≤ 250, Q ≤ 1000, N ≤ 3000. 
• Pentru alte teste în valoare de 20 de puncte: N ≤ 100000. 
• Pentru alte teste în valoare de 20 de puncte: K ≤ 3000, Q ≤ 1000.  
• Miruna vă garantează că a construit un șir final de lungime mai mare decât N. 
• Prima poziție în șir este considerată poziția 1.
2  rover 100 puncte 
NASA plănuiește o nouă misiune Rover pe Marte în anul 2020. Principalul obiectiv al acestei misiuni este 
de a determina, cu ajutorul unui nou Rover, dacă a existat în trecut viață pe Marte. Până când va fi lansată 
misiunea, Roverul este supus la tot felul de teste în laboratoarele NASA. Într -unul din teste, Roverul 
trebuie să parcurgă o suprafață de forma unui caroiaj cu N linii și N coloane. Acesta pornește din zona de 
coordonate (1,1) și trebuie să ajungă în zona de coordonate (N,N), la fiecare pas putându -se deplasa din 
zona în care se află într -una din zonele învecinate la nord, sud, est sau vest. Pentru fiecare zonă de 
coordonate (i,j) se cunoaște A i,j, stabilitatea terenului din acea zonă. Știind că Roverul are o greutate G, o 
zonă cu stabilitatea terenului cel puțin egală cu G se consideră o zonă sigură pentru deplasarea Roverului, 
iar o zonă cu stabilitatea terenului mai mică decât G se consideră o zonă periculoasă pentru Rover. 
Cerințe 
1. Determinați numărul minim posibil de zone periculoase pe care le traversează Roverul pentru a ajunge 
din zona (1,1) în zona (N,N). 
2. Determinați greutatea maximă pe care o poate avea un Rover care să ajungă din zona (1,1) în zona 
(N,N), fără a traversa nicio zonă periculoasă pentru el. 
Date de intrare 
Pe prima linie a fișierului de intrare rover.in  se găsește numărul natural V a cărui valoare poate fi 
doar 1 sau 2. Dacă V este 1, pe a doua linie a fișierului de intrare se găsesc două numere  naturale N și G 
cu semnificația din enunț, iar dacă V este 2, pe a doua linie a fișierului de intrare se află doar numărul N. 
Pe următoarele N linii se află câte N numere Ai,j, reprezentând stabilitatea terenului din zona (i,j). 
Date de ieșire 
Fișierul de ieșire este rover.out. 
Dacă valoarea lui V este 1, atunci fișierul de ieșire va conține pe prima linie un număr natural 
reprezentând numărul minim de zone periculoase pe care trebuie să le traverseze Roverul de greutate G. 
Dacă valoarea lui V este 2, atunci fișierul de ieșire va conține pe prima linie un număr natural 
reprezentând greutatea maximă a unui Rover care poate ajunge din zona (1,1) în zona (N,N) fără a 
traversa zone periculoase pentru el. 
Restricții și precizări  
• Pentru 50% din teste V = 1, pentru 50 % din teste V = 2. 
• 1   ≤   N   ≤     500 
• 1   ≤   G   ≤     5000 
• 1   ≤   Ai,j   ≤   10000 
• Zonele de coordonate (1,1) și (N,N) nu sunt zone periculoase pentru Rover. 
• Roverul nu va trece de mai multe ori prin aceeași zonă.
3  sir 100 puncte 
Corneluș a învățat să numere. El pornește întotdeauna de la 1, numără din 1 în 1, nu greșește niciodată 
numărul următor, însă ezită uneori și atunci spune numărul curent de mai multe ori. Sora lui, Corina, îl 
urmărește și face tot felul de calcule asupra modurilor în care numără fratele ei. Astfel , ea urmărește până 
la cât numără ( U), câte numere spune în total ( N) și, pentru a aprecia cât de ezitant este, numărul maxim 
de repetări (R) ale unei valori. De exemplu, el poate număra până la 8 astfel: 1 2 3 3 4 5 6 7 7 7 
7 8 8 . În acest caz, numără până la 8 ( U=8), spune 13 numere ( N=13) și ezită cel mai mult la 7, 
spunându-l de 4 ori (R=4). 
Cerințe 
1) Cunoscând numărul total de numere N și ultimul număr spus U, trebuie să calculați  câte șiruri 
diferite au exact N numere și se termină cu numărul U. 
2) Cunoscând numărul total de numere N și numărul maxim de repetări R ale unei valori, trebuie să 
calculați câte șiruri diferite au exact N numere și fiecare valoare se repetă de cel mult R ori.  
Deoarece numărul de șiruri poate fi foarte mare, calculați restul împărțirii acestui număr la 20173333. 
Date de intrare 
Din fișierul sir.in se citesc trei numere naturale, P, N și X, scrise în această ordine, cu câte un spațiu 
între ele.  P poate avea una dintre valorile 1 sau 2 , iar N este numărul de numere din șir. Când P are 
valoarea 1, numărul X reprezintă ultimul număr spus (U), iar când P are valoarea 2, X reprezintă numărul 
maxim de repetări ale unei valori (R). 
Date de ieșire 
În fișierul sir.out se scrie o singură valoare, astfel:  
• dacă P a avut valoarea 1, valoarea reprezintă numărul de șiruri distincte care au exact N numere și 
se termină cu numărul X; 
• dacă P a avut valoare 2, valoarea reprezintă numărul de șiruri distincte care au exact N numere și 
fiecare număr se repetă de cel mult X ori. 
În ambele cazuri , d eoarece numărul rezultat poate fi foarte mare , se v a scrie restul împărțirii acestui 
număr la 20173333.  
Restricții 
• 1 ≤ N ≤ 100000 
• X ≤ N 
• testele cu P=1 vor totaliza 50% din punctaj, restul de 50% din punctaj fiind pentru P=2; 
• pentru teste cumulând 50 de puncte valoarea lui N nu depășește 1000; 
• Ultima valoare spusă poate să apară de mai multe ori.