Documente Academic
Documente Profesional
Documente Cultură
1. Să se afişeze toate permutările unei mulţimi formate din n (n<10) numere naturale, a_1, a_2,
…, a_n (0<a_i<1000), date de la tastatură. Dacă cele n elemente nu formează mulţime (nu sunt
distincte), se va afişa mesajul EROARE. În caz contrar, se vor afişa, câte una pe linie,
permutările numerelor date, cu câte un spaţiu între elementele unei permutări.
Exemplu: n=4 7 9 51 9 se va afişa: EROARE
n=3 5 11 2 se va afişa: 5 11 2
5 2 11
11 5 2
11 2 5
2 11 5
2 5 11
2. Să se afişeze toate numerele formate din cifre distincte cu proprietatea că suma cifrelor este S.
Valoarea variabilei S se citeşte de la tastatură. Soluţiile vor fi afişate pe ecran.
Exemplu: S=3 se va afişa: 102 12 120 201 21 210 3 30
5. Generaţi toate numerele naturale cu n cifre (1<=n<=9) care sunt “super multiple” de k (k>0).
Un număr este “super multiplu” de k, dacă atât numărul cât şi toate numerele obţinute din el prin
tăierea succesivă a cifrelor sale începând cu cifra unităţilor sunt multiple de k. Valorile n şi k se
introduc de la tastatură şi sunt corecte.
Exemplu: n=3 k=2 unul din numere este 246
8. Se dau n bile albe şi albastre. Fiecare bilă are o etichetă de tip caracter. Să se afişeze toate
posibilităţile de a selecta k bile din care cel puţin a să fie albe. Citirea datelor de intrare se va
face din fişier. Afişarea soluţiilor se va face în fişier. Cele două fişiere vor avea formatul din
exemplu.
Exemplu: 8.IN 8.OUT
5 3 2 (n k a) a b d
alb albastru albastru alb alb a b f
a b e d f a e d
a e f
a d f
b d f
e d f
10. Se dau n persoane 1 .. n şi p perechi de forma (i,j) cu semnificaţia că i este fiul lui j. Să se
aşeze cele n persoane în rând astfel încât fiecare persoană să se afle înaintea fiilor săi.
Exemplu: n = 10 p = 9 ( 4 1 ) ( 4 5 ) ( 1 6 ) ( 1 8 ) ( 6 3 ) ( 6 7 )
( 8 10 ) ( 8 9 ) ( 9 2 )
se va afişa: 2 3 5 7 6 9 10 8 1 4
2 5 9 10 8 3 7 6 1 4
ş. a. m. d.
11. Să se genereze toate şirurile strict crescătoare formate din numere naturale cu proprietatea că
primul element din şir este n, iar ultimul element al şirului este n+k. Numerele naturale n şi k
(0<n<20, 0<k<16) sunt citite de la tastatură. Fiecare şir generat va fi scris pe o linie, elementele
unui şir fiind separate prin câte un spaţiu.
Exemplu: n=7 k=3 se va afişa: 7 8 9 10
7 8 10
7 9 10
7 10
13. Să considerăm o tablă de şah de dimensiuni n*n (n<=20, n citit de la tastatură). Să se afişeze
pe ecran toate posibilităţile de a aşeza n ture pe această tablă de şah astfel încât oricare două ture
să nu se atace. Două ture se atacă dacă se găsesc pe aceeaşi linie sau pe aceeaşi coloană. O
soluţie va fi afişată pe o linie ca o secvenţă c1, c2, …, cn, unde ci reprezintă coloana în care este
plasată tura de pe linia i.
14. Să se genereze toate şirurile de n note muzicale din mulţimea {Do, Re, Mi, Fa, Sol, La, Si}.
Orice notă poate să nu apară sau se poate repeta în cadrul unui şir.
15. Se citesc n, p şi apoi n litere distincte. Afişaţi toate cuvintele care se pot forma cu p dintre
ele. Citirea datelor de intrare se va face din fişier. Afişarea soluţiilor se va face în fişier. Cele
două fişiere vor avea formatul din exemplu.
Exemplu: 15.IN 15.OUT
53 niy nis nid nyi nys
niysd nyd nsi nsy nsd ndi
ndy nds iny ins ind
iyn iys iyd isn isy
isd idn idy ids yni
yns ynd yin yis yid
ysn ysi ysd ydn ydi
yds sni sny snd sin
siy sid syn syi syd
sdn sdi sdy dni dny
dns din diy dis dyn
dyi dys dsn dsi dsy
16. Să se genereze toate cuvintele de lungime n (n<=10) ale alfabetului morse, formate numai
din punct şi liniuţă, care nu încep şi nu se termină cu caracterul liniuţă.
18. Se citeşte un număr natural n. Să se genereze toate matricele pătrate cu elemente binare (0, 1)
de dimensiune n cu proprietatea că pe fiecare coloană există o singură cifră de 0.
Exemplu: n = 2 se va afişa: 0 0 0 1 1 0 1 1
1 1 1 0 0 1 0 0
20. Avem la dispoziţie 6 culori: alb, galben, roşu, verde, albastru şi negru. Să se precizeze toate
drapelele tricolore care se pot proiecta, ştiind că trebuie respectate regulile:
– orice drapel are culoarea din mijloc galben sau verde;
– cele trei culori de pe drapel sunt distincte.
Afişarea soluţiilor se va face în fişier. Se va afişa de asemenea şi numărul soluţiilor.
Exemplu: 20.OUT
alb galben rosu
alb galben verde
alb galben albastru
alb galben negru
alb verde galben
...
40
22. Scrieţi un program care afişează pe ecran toate secvenţele de n litere (n număr natural par
citit de la tastatură) din mulţimea {A, R, G, V}, secvenţe care se pot construi respectând
următoarele reguli:
– nu plasăm două litere identice una lângă alta;
– trebuie să utilizăm exact n / 2 litere R.
Fiecare soluţie se va afişa pe câte o linie a ecranului sub forma unui şir de litere.
Exemplu: n=2 se va afişa: AR RA RG GR RV VR
23. Se citesc de la tastatură un număr natural n (0<n<=10) şi apoi n valori naturale a1, a2, …, an.
Afişaţi pe ecran toate posibilităţile de a intercala între toate numerele a1, a2, …, an operatorii +
şi – astfel încât evaluând expresia obţinută de la stânga la dreapta, la fiecare pas rezultatul
obţinut să fie strict pozitiv. Fiecare soluţie se va afişa pe câte o linie.
Exemplu: n=3 a1 = 3 a2 = 5 a3 = 2
se va afişa: 3+5+2
3+5–2
24. Se citesc de la tastatură două numere n (0<n<15) şi s (0<s<106) şi apoi n valori întregi
distincte, fiecare valoare aparţinând intervalului [–1000,1000]. Să se determine toate mulţimile
de numere dintre cele date, fiecare mulţime având proprietatea că suma elementelor ei este egală
cu s.
Fiecare mulţime se va afişa pe o linie, elementele ei fiind scrise în ordine crescătoare, despărţite
prin câte un spaţiu sau câte o virgulă..
De exemplu, pentru n=7, s=61 şi valorile 12, 61, 22, 57, 10, 4, 23, se vor afişa, pe linii distincte,
următoarele mulţimi:
4 12 22 23
4 57
61
25. Să se genereze toate şirurile formate din n cifre, fiecare şir generat având următoarele
proprietăţi:
– conţine numai cifre din mulţimea {1, 2, 3, 4};
– orice două cifre alăturate sunt fie ambele pare, fie ambele impare.
Numărul natural n (3<=n<=15) se citeşte de la tastatură. Toate soluţiile vor fi scrise una după
alta, cu spaţii între soluţii, fiecare şir fiind scris fără spaţii între cifrele ce-l formează.
Exemplu: n=3 se va afişa: 111 113 131 133 311 313 331 333
222 224 242 244 422 424 442 444
26. Se citeşte de la tastatură un număr natural n (n<15). Să se genereze toate şirurile formate din
numerele 1, 2, …, n astfel încât fiecare valoare să apară exact o dată într-un şir, iar valorile pare
să se găsească totdeauna “la locul lor”: 2 pe a doua poziţie din şir, 4 pe a patra poziţie din şir, 6
pe a şasea poziţie în şir etc. Fiecare şir se va afişa pe un rând al ecranului, cu spaţii între
elementele ce-l formează.
Exemplu: n=6 se va afişa: 1 2 3 4 5 6
1 2 5 4 3 6
3 2 1 4 5 6
3 2 5 4 1 6
5 2 1 4 3 6
5 2 3 4 1 6
27. Fie o tablă dreptunghiulară, împărţită în n*m căsuţe identice. Iniţial, într-una din căsuţe se
află un pion care se poate deplasa pe orizontală sau verticală fără a putea ieşi din cadrul tablei.
Dându-se poziţia iniţială şi cea finală a pionului, precum şi de câte ori poate să treacă acesta prin
fiecare poziţie, se cere să se reconstituie traseul parcurs de pion.
28. Un soldat având la dispoziţie un detector de mine trebuie să parcurgă un teren minat având
forma unei table dreptunghiulare de dimensiune m*n. În fiecare din pătratele tablei poate fi
amplasată o mină. Soldatul porneşte dintr-un colţ al terenului şi trebuie să ajungă în colţul opus.
Să se determine toate modalităţile în care soldatul poate parcurge terenul minat.
29. Se dă un lac îngheţat sub forma unui tablou m*n. O broscuţă se găseşte în poziţia (1,1), iar în
poziţia (m,n) se găseşte o insectă. În gheaţă sunt găuri ale căror coordonate se cunosc. Găsiţi
drumul cel mai scurt până la insectă şi înapoi ştiind că: deoarece broscuţa visa să fie cal, ea va
sări ca un cal de şah. În punctele în care păşeşte broscuţa gheaţa cedează. Broscuţa nu poate păşi
decât pe gheaţă.
31. Un soldat trebuie să parcurgă un teren minat pentru a ajunge în liniile proprii. Se cere cel mai
scurt drum prin care soldatul ajunge nevătămat la camarazii săi. Se dau: poziţia iniţială a
soldatului (x,y), poziţiile minelor cu valoarea 1 în matrice şi se ştie că propriile linii se află în
afara terenului, pe orice parte a sa. Deplasarea soldatului se face doar ortogonal. Se va citi din
fişierul "SOLDAT.IN" şi se va afişa în "SOLDAT.OUT".
Exemplu: n=5 m=5 x=2 y=2
se va afişa: 11101 00000
10010 01000
00100 32000
00000 00000
01000 00000
32. Gigel se află în poziţia (x0,y0) a unui teren de dimensiune n*m. El poate face paşi doar pe
anumite lungimi date de la tastatură în una din direcţiile N, S, E, V şi nu poate păşi într-o poziţie
mlăştinoasă pe teren (poziţiile mlăştinoase se citesc de la tastatură). Se cer toate modurile pentru
ca Gigel să ajungă în poziţia finală (x1,y1), fără ca el să treacă de două ori prin aceeaşi căsuţă.
Exemplu: GIGEL.IN GIGEL.OUT
5 8 1 2 3 4 7 (n m paşi) 01*045*0
1 1 5 5 (x0 y0 x1 y1) 00*000*0
de la tastatură: 0 0 1 0 0 0 1 0 02003000
00100010 00000000
00000000 00000600
00000000
00000000
33. Pe o tablă de şah de dimensiune n se află un cal pe poziţia (x0,y0). Se cere cel mai scurt
traseu pe care trebuie să-l parcurgă calul pentru a ajunge în poziţia (x1,y1) fără a trece de două
ori prin aceeaşi poziţie şi ştiind că există anumite căsuţe inundate, unde calul nu poate sări.
Exemplu: CAL.IN CAL.OUT
5 1 1 5 5 (n x0 y0 x1 y1) 10000
00000 00030
00100 02000
00010 00400
00000 00005
01100
35. Un pictor are o pictură pe o pânză de formă pătratică, împărţită cu n linii şi n coloane ( n
număr natural nenul, n <= 50 ) în n 2 pătrate identice. Pătratele sunt colorate cu una din culorile:
alb, galben şi albastru. Pictorul doreşte să recoloreze n pătrate albe sau galbene de pe pânză cu
culoarea roşie. El consideră că pictura va fi perfectă dacă nu vor exista două pătrate roşii pe
aceeaşi linie, coloană sau diagonală.
Cunoscându-se pictura în forma iniţială, codurile culorilor pătratelor fiind reţinute într-o matrice
pătratică c cu n linii şi cu valori în { 1, 2, 3 }, cod 1 – culoarea albă, 2 – galbenă, 3 – albastră,
scrieţi un program pentru a genera toate variantele de recolorare a pătratelor în conformitate cu
dorinţa pictorului. Dacă nu este posibil, se va afişa mesajul Imposibil. Se consideră culoarea
roşie codificată cu numărul 4.
Exemplu: n=4 matricea culorilor c se va afişa:
3 1 2 3 3 4 2 3 3 1 4 3
2 1 3 1 2 1 3 4 4 1 3 1
1 2 3 1 4 2 3 1 1 2 3 4
3 1 2 1 3 1 4 1 3 4 2 1
36. Copiii așteaptă jucării de la Moș Crăciun. Scrieți un program care determina toate modurile
diferite in care ei pot sa fie așezați in lista, astfel încât să fie vizitați toți copiii si vizitele sa se
facă in ordinea descrescătoare a numărului de jucării dorite de fiecare. Se citesc de la tastatura: n,
numărul de copii, apoi numele si numărul de jucării cerut de fiecare dintre cei n copii. Sa se scrie
numele copiilor, in ordinea in care vor fi vizitați de Moș Crăciun.
Dan 2
Cristina 4
Corina 6
Iulia 4