Documente Academic
Documente Profesional
Documente Cultură
Se dau n cercuri de raze r1, r2, . . . , rn. Aceste cercuri sunt mpachetate ntr-un
dreptunghi astfel: toate cercurile sunt tangente la baza dreptunghiului, cercurile sunt aranjate n
ordinea iniial (cel mai din stnga fiind cercul de raz r1, cel mai din dreapta cercul de raz rn),
iar cercurile consecutive (de raze ri si respectiv ri+1) sunt tangente. S se scrie un program
care calculeaz limea minim a dreptunghiului n care ncap cercurile. Rezultatul se va afisa
cu trei zecimale exacte. Spre exemplu, dac n = 3, r1 = 2, r2 = 1 si r3 = 2, atunci rezultatul
care trebuie afisat este 9.656. Not: Programul va fi scris ntr-unul dintre limbajele de
programare studiate n liceu (Pascal,C,C++). Se vor descrie informal detaliile algoritmului folosit
si ale implementrii sub form de program: semnificaia variabilelor, a structurilor de date, a
structurilor repetitive, a instruciunilor condiionale.
2013
Se consider o secven de numere naturale x1, x2, . . . , xn. Din aceast secven se pot
obine alte secvene folosind urmtoarea operaie: se extrage elementul de pe poziia i(i > 1), se
mut toate elementele situate la stnga poziiei i cu o poziie la dreapta, iar elementul de pe
poziia i se plaseaz pe prima poziie a secvenei.
(a) S se realizeze un program care primind o secven de numere naturale x1, x2, . . . , xn
afiseaz toate secvenele care se pot obine din aceasta folosind o singur dat operaia
definit mai sus. Ordinea n care sunt afisate secvenele rezultate nu conteaz. De exemplu din
secvena 1,2,3 folosind o singur operaie, mutnd elementul de pe poziia 2 se pot obtine
secvena 2,1,3 si mutnd de pe poziia 3 se obtine secvena 3,1,2.
(b) S se realizeze un program care primind dou permutari x1, x2, . . . , xn si y1, y2, . . . ,
yn ale mulimii {1, . . . , n} afiseaz o secven de operaii de tipul de mai sus prin care
permutarea x1, x2, . . . , xn se poate transforma n permutarea y1, y2, . . . , yn. O operaie va fi
afisat prin acel element xi care se mut pe prima poziie. De exemplu dac se primesc
permutrile: 4,5,6,7,8,9,3,1,2 si 4,9,6,5,7,8,3,1,2 o posibil iesire a programului este: 6,9,4
adic din prima permutare se extrage 6 si se pune n fa, apoi se extrage 9 si se pune in fa,
iar apoi se extrage 4 si se pune in fa.
nesterse pana la pasul respectiv. Programul va afisa m 1 perechi de forma (k, q) unde q
este unul dintre elementele vectorului, diferit de p, iar k este pasul la care a fost sters q.
Programul scris trebuie sa aiba complexitatea timp liniara n functie de m, adica numarul
de instructiuni ale programului sa fie aproximativ egal cu dimensiunea vectorului. (b) Scrieti
un program similar cu cel de la punctul (a), dar cu urmatoarea conditie suplimentara: dupa
pasul k, ntre oricare doua elemente deja sterse consecutive sa nu fie o distanta mai mare
de 2nk , unde prin distanta dintre i si j se ntelege |j i|. Calculati complexitatea timp n
functie de n a programului pe care l-ati scris. Exemplu: Consideram vectorul X, 1, 2, 3, 4, X, 6,
7, 8, X. Printr-o posibila strategie de stergere, continutul vectorului dupa fiecare pas k este:
X, 1, X, 3, 4, X, 6, 7, 8, X (dupa pasul 1), X, 1, X, 3, X, X, 6, X, 8, X (dupa pasul 2), respectiv X,
X, X, X, X, X, X, X, X, X (dupa pasul 3). Rezultatul afisat de program n acest caz este
secventa (1,2),(2,4),(2,7),(3,1),(3,3),(3,6),(3,8).