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

100 puncte 
Se consideră o mulțime S care conține N șiruri de caractere  formate din litere mici ale alfabetului 
englezesc.   
Un șir de caractere se numește interesant în raport cu celelalte șiruri ale mulțimii, dacă nu există un 
alt șir  în mulțime care să-l conțină ca subșir . De exemplu, dacă mulțimea S conține șirurile abc, bde și 
abcdef, atunci singurul șir interesant este abcdef deoarece abc și bde nu îl conțin ca subșir . Mai mulț 
abc și bde sunt subșiruri în abcdef, deci nu sunt interesante.   
Cerințe 
Fiind dată o mulțime S formată din N șiruri de caractere se cere:  
1. Să se determine cel mai lung ș ir. Dacă sunt mai multe șiruri având aceeași lungime maximă, se 
cere cel mai mic din punct de vedere lexicografic.    
2. Să se determine toate șirurile interesante din  mulțimea S.  
Date de intrare  
Fișierul de intrare interesant.in conține pe prima linie două numere naturale p și N, despărțite 
prin spațiu . Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea  2. Pe 
următoarele N linii, se găsesc șirurile de caractere, câte unul pe linie. 
Date de ieșire 
Dacă valoarea lui p este 1,  se va rezolva numai cerința 1.   
În acest caz, în fișierul de ieșire interesant.out se va scrie cel mai lung șir dintre  cele citite. 
Dacă există mai multe șiruri de aceeași lungime, se va scrie cel mai mic din punct de vedere lexicografic.    
Dacă valoarea lui p este 2, se va rezolva numai cerința 2.   
În acest caz, fișierul de ieșire interesant.out va conține pe prima lin ie o valoare  K ce 
reprezintă numărul de șiruri interesante, iar pe următoarele K linii, șirurile interesante în ordinea î n care 
apar în fișierul de intrare. 
Restricții și precizări 
• 2 ≤ N ≤ 200 
• Lungimea unui șir va fi cuprinsă între 1 și  5000 
• Un subșir al șirului de caractere C0C1C2 …Ck se definește ca fiind o succesiune de caractere Ci1Ci2 
Ci3…Cik, unde 0 ≤ i1 < i2 < i3 < … < ik ≤ k. 
• Fișierul de intrare NU conține șiruri identice. 
• Pentru rezolvarea corectă a primei cerințe se acordă 20 de puncte, iar pentru cerința a doua se acordă 
80 de puncte. 

100 puncte 
 
 În Orașul Liniștit un număr de k tineri prieteni  doresc să participe la un miting de protest. 
Deoarece c artierul în care locuiesc aceștia este mare, ei se vor deplasa spre punctul de întâln ire cu 
mașinile personale. Fiecare tânăr va aduce cu el o pancartă , pe care a desenat o singură literă din 
mulțimea A ... Z. Nu există două pancarte  cu litere identice. Cele k litere formează un cuvânțsă -l 
notăm  cuv, cunoscut. 
 Cartierul în care locuies c tinerii poate fi codificat printr -o matrice cu n x m  zone pătratice, 
dintre care unele sunt interzise. Se știe că o mașină consumă o unitate de combustibil la trecerea dintr -o 
zonă în zona vecină și nu consumă combustibil dacă staționează . Două zone sunt vecine dacă au în 
comun o latură. Pentru a face economie de combustibil, tinerii decid c ă dacă două mașini se întâlnesc 
într-o zonă și toate literele aflate în cele două mașini reprezintă o secvență din cuvântul cuv, atunci ei 
vor continua drumul cu o sin gură mașină, luând desigur toate pan cartele cu ei. În caz contrar, mașinile 
își continuă drumul separat. 
 De exemplu, dacă cuvantul cuv este „JOS”, atunci mașina care transportă litera J poate prelua 
tânărul care aduce pancarta cu litera O, sau invers: mașina având litera O poate prelua tânărul care aduce 
litera J. Apoi se poate continua drumul spre mașina ca re transportă litera S. În altă variantă se pot reuni  
mai întâi literele S și O într-o singură mașină , dacă mașinile care le transportau se întâlnes c în aceeași 
zonă. Totuși, între mașina care transport ă doar litera J și cea care transportă doar litera S nu se poate 
realiza un transfer, adică o reunire a literelor. 
 
Cerinţe 
Cunoscând dimensiunile cartierului n și m, cuvântul cuv, configurația cartierului și pozițiile 
inițiale ale tinerilor, se cere: 
1. Aria minimă a unei submatrice a matricei care codifică cartierul, în care se situează toate  
pozițiile inițiale ale tinerilor.  
2. Numărul minim de unități de combustibil consumați de către toate mașinile, știind că în final  
toți tinerii se vor reuni într-o singură mașină. 
  
Date de intrare  
 Fişierul de intrare miting.in conţine: 
Pe prima linie, un număr natural p, care poate avea doar valoarea 1 sau 2. 
Pe a doua linie două numere naturale n și m, separate printr-un spațiu. 
Pe a treia linie, cuvântul cuv. 
Pe următoarele n linii, câte m caractere pe linie reprezentând zonele cartierului. O zonă este 
interzisă dacă îi corespunde caracterul #, este liberă dacă îi corespunde caracterul _ (underline) și este 
punctul de plecare al unei mașini dacă îi corespunde una dintre literele cuvântului cuv. 
  
Date de ieşire 
Dacă valoarea lui p este 1,  se va rezolva numai cerința 1.   
În acest caz, în fişierul de ieşire miting.out se va scrie un singur număr natural A, 
reprezentând aria minimă a unei submatrice a matricei care codifică cartierul , în care se situează toate  
pozițiile inițiale ale tinerilor.  
Dacă valoarea lui p este 2, se va rezolva numai cerința 2.   
În acest caz, în fişierul de ieşire miting.out se va scrie un singur număr natural C, 
reprezentând numărul minim de unități de combustibil consumate de către toate mașinile până la 
reunirea tinerilor, deci și a literelor, într-o singură mașină. În cazul în care nu există soluție, adică nu toți 
tinerii se pot reuni într-o singură mașină, se va scrie  -1.   
 
 
 Ministerul Educaţiei si Cercetării Stiintifice 
Olimpiada Judeţeană de Informatică                      Clasa a X-a 
12 martie 2016 
Sursa: ID2.c, ID2.cpp, ID2.pas 
 
Restricţii şi precizări 
• 2 ≤ n, m ≤ 60  
• 2 ≤ k ≤ 10 
• Fie z numărul zonelor interzise. Atunci 0 ≤ z ≤ (n * m)/3 
• În fiecare unitate de timp, o mașină poate să rămână pe loc în așteptarea alteia sau poate să treacă 
într-o zonă vecină, indiferent dacă zona respectivă este sau nu ocupată de o altă mașină. 
• Lungimea laturii unei zone se consideră egală cu 1. 
• Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, iar pentru cerința a doua se 
acordă 80 de puncte. 
• Pentru 30% dintre testele cerinței 2 se garantează  k ≤ 3.