Sunteți pe pagina 1din 2

1. Se dau patru numere naturale n a x y.

Să se afișeze elementele mulțimii M, cu următoarele proprietăți:


toate elementele lui M sunt numere naturale mai mici sau egale cu n; a se află în M; dacă b se află în M,
atunci b+x și b+y se află în M.
Programul citește de la tastatură numerele n a x y și afișează pe ecran elementele mulțimii M, în ordine crescătoare,
separate prin câte un spațiu.
1 ≤ n ≤ 10000
1 ≤ x , y ≤ 10000
0 ≤ a ≤ 10000
Exemplu
Intrare: 25 3 4 11
Ieșire: 3 7 11 14 15 18 19 22 23 25

2. Fiind dat un șir de paranteze, să se verifice dacă este o expresie corectă din punct de vedere sintactic.
Exemplu: *()+,-,*()()+()- este o expresie corectă, *(+) este incorectă

3. Fie n și k două numere întregi strict pozitive. Se aranjează într-un cerc n puncte numerotate 1,2,3,.., n. Se
șterge pe rând fiecare al k-lea punct (numărătoarea începând de la primul) până când toate punctele au fost
șterse. Care este ultimul punct care va fi șters?

4. Considerăm o matrice A de dimensiune n × m (n, m ∈ N, n, m ≥ 2) care conține numere naturale distincte.


Matricea reprezintă terenul de joacă al unei broscuțe. Elementul de la linia i și coloana j din matrice este
înălțimea terenului la acea poziție. Broscuța vizitează o succesiune de poziții din teren în felul descris în
continuare. Broscuța se află inițial la linia L și coloana C (1 ≤ L ≤ n, 1 ≤ C ≤ m). În orice poziție s-ar afla la un
moment daț broscuța efectuează un salt pe una dintre pozițiile vecine pe orizontală sau verticală (fiecare
poziție are cel mult patru poziții vecine: deasupra, dedesubț la dreapta, la stânga). Dintre acestea, broscuța
va alege poziția care are înălțimea cea mai apropiată de înălțimea de la poziția curentă (diferența în modul
dintre cele două înălțimi să fie minimă). În cazul în care sunt mai multe poziții vecine cu această proprietate,
ea alege să sară pe cea cu înălțimea cea mai mică dintre acestea. Broscuța nu se oprește niciodată.
a) În exemplul de mai jos dimensiunea terenului este 4 ×5. Broscuța se află inițial la coordonatele (L, C) = (2,
4), unde înălțimea este 66. Scrieță înălțimile primelor 10 poziții vizitate de broscuță, în ordinea vizitării

acestora.
b) Scrieți o funcție C/C++ care primește ca parametri matricea A, dimensiunile acesteia n și m și numerele
naturale L și C. Funcția trebuie să returneze cea mai mică înălț ime a unei poziț ii vizitate de broscuță de cel
puțin două ori. Nu este necesară validarea parametrilor de intrare.

5. Spunem că o matrice pătratică a, de dimensiune n ≥ 2, având elemente numere naturale, are proprietatea T
dacă îndeplinește următoarele condiții:
(i) pentru orice 2 ≤ p ≤ n, numărul de elemente nenule din submatricea formată din primele p linii și p
coloane ale lui a este 2p − 2;
(ii) pentru orice 1 ≤ j ≤ i ≤ n, fie a*i+*j+ = a*j+*i+ = 0, fie a*i+*j+ = a[j][i] + 1;
(iii) pe orice linie a matricii elementele nenule au aceea¸si valoare.
a) Scrieți o funcție C/C++ care primește ca parametri un întreg n ≥ 2 și o matrice pătratică de dimensiune n.
Funcția va returna 1 dacă matricea satisface proprietatea T și 0 în caz contrar.
b) Demonstrați că într-o matrice pătratică de dimensiune n ≥ 2 ce satisface proprietatea T există cel puțin
două linii având un singur element nenul.
c) Scrieți o funcț ie C/C++ care primește ca argumente un întreg n ≥ 2 și o matrice pătratică de dimensiune n
care satisface proprietatea T. Funcția va afișa cea mai lungă secvență de indecși (ik, . . . , i2, i1 = 1) care
satisface relația a[ij+1][ij ] = a[ij ][ij+1+ + 1, pentru orice 1 ≤ j < k. Nu este necesară validarea parametrilor de
intrare. Justificați corectitudinea algoritmului. Pentru exemplul de mai sus, funcția va afișată: (4, 3, 1). Nu se
acordă puncte pentru soluții de tip backtracking.

6. Fie S și T două mulțimi de simboluri, ambele având același număr de elemente n, unde n este un număr
natural impar. Un (S,T)-pătrat este o matrice pătratică de dimensiune n × n ce îndeplinește următoarele
condiții:
(C1) fiecare element al matricii este o pereche (s,t) unde s∈S ¸si t∈T;
(C2) pentru orice două elemente (s,t) și (s’,t’) aflate pe poziții diferite în matrice dar pe aceeași linie sau pe
aceeași coloană,
(C3) pentru orice dou˘a elemente (s,t) s, i (s’,t’) aflate pe poziții diferite în matrice, avem s ≠ s’ sau t ≠ t’.

a) Dați un exemplu de (S,T)-pătrat pentru n=5, S={a,b,c,d,e} ¸si T={0,1,2,3,4}.


b) Scrieți o funcție C/C++ care primește ca argumente numărul natural impar n și două tablouri de caractere,
reprezentând mulțimile S și T, și construieste un (S,T)-pătrat.
c) Argumentați faptul că pătratul construit de funcția de la punctul b) îndeplinește condițiile (C1), (C2) ¸si
(C3).

S-ar putea să vă placă și