Lista de probleme

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:

  1. dacă matricea M are o singură linie şi o singură coloană atunci CM conţine numai caracterul memorat în matrice;
  2. dacă toate elementele matricei sunt 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;
  3. 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;
  4. 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 3.;
  5. 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 3.;

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:

  1. numărul de împărţiri care au fost necesare pentru obţinerea textului compresat;
  2. matricea iniţială din care provine textul compresat.

OJI 2012, clasa a X-a

#1762 Morum

Cunoscând latura l a covorului, modelul m ales, procentul p din suprafața inițială a covorului care poate fi decupat, determinați gradul de dantelare al covorului (etapa până la care se poate proceda la modelare), precum și lungimea conturului și suprafața covorului după decupare (perimetrul și aria se vor afișa fiecare prin câte o fracție).

Concursul EMPOWERSOFT, 2016

Să se scrie o funcție C++ recursivă care returnează factorialul unui număr dat ca parametru.

Prietenul nostru, Ionci, a învățat la scoală despre ridicarea la putere. Ajutați-l să calculeze \( a^b\).

Se citeşte un număr natural n. Să se scrie n ca sumă de puteri crescătoare ale lui 2.

Să se scrie o funcție C++ recursivă care determină factorialul unui număr transmis ca parametru și întoarce rezultatul prin intermediul unui parametru de ieșire.

În premieră în acest an, pentru a putea ridica marele trofeu “Urmașul lui Moisil” vor fi necesare o serie de ștampile ce se obțin de la Primărie.

La Primăria din Iași sunt N camere numerotate de la 1 la N. În fiecare cameră există câte o ștampilă pe care apare o literă mică a alfabetului englez a-z. Pot exista camere cu același caracter pe ștampilă.

În instituţie sunt două categorii de camere, în funcţie de modul în care acordă ștampilele:

  • camere simple – se aplică ștampila camerei imediat, fără a fi necesare ştampilele din alte camere.
  • camere complicate – Mecanismul birocratic intră în acţiune! Funcţionarul unei astfel de camere i aplică ştampila pe cerere apoi solicită obţinerea în ordine a ştampilelor camerelor c[i1], c[i2] ... c[iLg], toate aceste camere având numere mai mari strict decât i. După fiecare ștampilă obținută în camerele specificate, aplică și el, încă o dată, ştampila camerei sale. Spunem că această cameră complicată este dependentă de fiecare dintre camerele din lista asociată, care pot fi la rândul lor simple sau complicate.

Pentru ca festivitatea de premiere să nu înceapă prea târziu , câștigătorul trofeului trebuie să raspundă repede la M întrebări de tipul (q,k): care este litera de pe poziția k a șirului de ștampile obținut de la camera q?

Urmasii lui Moisil, 2014, Clasa a X-a

#821 CmmdcRec C++

Să se scrie o funcție C++ recursivă care returnează cel mai mare divizor comun a două numere transmise ca parametri.

Determinaţi numărul format din ultimele p cifre ale lui a n.

Se dă un număr natural n. Să se genereze o matrice pătratică de dimensiune 2n, după un pattern dat.