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

1 - compresie   100 puncte  
 
Se consideră un text memorat într-o matrice  M, definită prin coordonatele colţului stânga sus (x1,y1) şi coordonatele 
colţului dreapta jos (x2,y2).      
Prin aplicarea unui algoritm de compresie, matricei M i se asociază un şir de caractere, notat CM. 
Şirul de caractere CM  este construit prin aplicarea următoarelor reguli:   
a) dacă matricea M are o singură linie şi o singură coloană atunci CM conţine numai caracterul memorat în matrice; 
b) dacă toate elementele matricei s unt identice atunci întreaga matrice M se comprimă şi CM este şirul kc, unde k 
reprezintă numărul de caractere din matrice, iar c caracterul memorat;  
c) dacă matricea este formată din caractere diferite şi are cel pu ţin două linii şi două coloane 
atunci: 
- matricea este împărţită în 4 submatrice A, B, C, D după cum este ilustrat în figura alăturată , 
unde coordonatele colţului stânga sus ale submatricei A sunt (x1,y1), iar coordonatele 
colţului dreapta jos sunt ((x2+x1)/2,(y2+y1)/2); 
- CM este şirul *CACBCCCD  unde CA, CB, CC, CD sunt şirurile de caractere obţinute, în ordine, prin compresia matricelor 
A, B, C, D utilizând acelaşi algoritm; 
d) dacă matricea este formată din caractere diferite, are o singură linie şi mai multe coloane atunci CM este şirul *CACB  
unde A, B, CA, CB au semnificaţia descrisă la punctul c); 
e) dacă matricea este formată din caractere diferite, are mai multe linii şi o singură coloană atunci CM este şirul *CACC  
unde A, C, CA, CC au semnificaţia descrisă la punctul c). 
Cerinţă 
Dat fiind şirul de caractere CM ce se obţine în urma aplicării algoritmului de compresie asupra unei matrice M de dimensiune 
NxN să se determine:  
a) numărul de împărţiri care au fost necesare pentru obţinerea textului compresat;  
b) matricea iniţială din care provine textul compresat. 
Date de intrare 
Fişierul de intrare compresie.in conţine pe prima linie un şir de caractere ce reprezintă textul compresat. 
Date de ieşire 
Fişierul de ieșire compresie.out conţine: 
- pe prima linie un număr natural ce reprezintă   numărul  nr de împărţiri care au fost necesare pentru ob ţinerea textului 
compresat; 
- pe următoarele N linii se găsesc câte N caractere, litere mici ale alfabetului englez, neseparate prin spații, ce reprezintă, în 
ordine, liniile matricei iniţiale. 
Restricţii şi precizări  
• 2 ≤ N ≤ 1000 
• 0 ≤ nr ≤ 1000000 
• 2 ≤ lungimea şirului compresat ≤ 1000000 
• Textul memorat iniţial în matricea M conţine numai caractere din mulţimea literelor mici {a...z}. 
• Pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctaj, iar pentru rezolvarea corectă a ambelor cerinţe 
se acordă tot punctajul. 

2 – culori 100 puncte 
 
Pasiunea Mirunei este să coloreze . Vacanţa trecută şi -a petrecut-o la bunica ei la ţară şi pentru că se cam 
plictisea s-a gândit să vopsească gardul de la casa bunicii. 
Gardul este compus din N scânduri dispuse una lângă alta. Miruna a găsit în garajul bunicii 5 cutii de 
vopsea de culori diferite: albă, albastră, roşie, verde şi galbenă. Când a vopsit gardul, Miruna a respectat 
următoarele reguli: 
- Dacă o scândură era vopsită cu alb, următoarea scândură o vopsea obligatoriu cu albastru 
- Dacă o scândură era vopsită cu albastru, atunci următoarea scândură o vopsea cu  alb sau roşu 
- Dacă o scândură era vopsită cu roşu, atunci următoarea scândură o vopsea cu  albastru sau verde 
- Dacă o scândură era vopsită cu verde, atunci următoarea scândură o vopsea cu  roșu sau galben 
- Dacă o scândură era vopsită cu galben, atunci următoarea scândură o vopsea obligatoriu cu verde 
După ce a și -a terminat treaba Miruna își admira “opera de artă” și se întreba în câte moduri diferite ar fi 
putut să vopsească gardul bunicii.  
Cerinţă 
 Ajutați-o pe Miruna să găsească răspunsul la întrebarea sa. 
Date de intrare 
Fişierul culori.in conţine pe prima sa linie un singur număr natural N (1  N  5000). 
Date de ieşire 
Fişierul de ieşire culori.out va conţine pe prima sa linie un singur număr întreg reprezentând numărul 
de moduri diferite în care Miruna ar fi putut să vopsească gardul bunicii. 
Restricţii şi precizări: 
• 1  N  5000; 
• Pentru 25% dintre teste N45.