Documente Academic
Documente Profesional
Documente Cultură
Test
1. Pentru fiecare din problemele de mai jos descrie în 1-2 propoziții un algoritm care să se potrivească cererii:
(2p)
a. Fie a un vector neordonat de valori întregi. Descrie un algoritm care găsește o pereche de elemente
din vector pentru care diferența în modul e maximă. Eficiența algoritmului trebuie să fie O(n).
b. Fie a un vector ordonat de valori întregi. Descrie un algoritm care găsește o pereche de elemente din
vector pentru care diferența în modul e maximă. Eficiența algoritmului trebuie să fie O(1).
………………………………………………………………………………. .......................................................
// a – vector cu n elemente void perfect(int b)
void inserare (int x) { int ok=0;
{ int f,t; if(8128<=b)cout<<"8128 ",ok=1;
n++; f=n; t=f/2; if(496<=b)cout<<"496 ",ok=1;
while((t>0)&&(a[t]<x)) if(28<=b)cout<<"28 ",ok=1;
{ a[f]=a[t]; f=t; t=f/2; } if(6<=b)cout<<"6 ",ok=1;
a[f]=x; if(ok==0)cout<<"nu exista";
} }
................................................................................ ................................................................
3. Ai un portofel magic care are un număr nelimitat de bancnote de 1, 5, 10, 50, 100 și 500 lei. Scrie un program
care citind o sumă S determină numărul minim de bancnote ce pot fi folosite pentru a plăti suma respectivă.
Exemplu: pentru S=653 răspunsul e 6. Care este complexitatea algoritmului? Justifică! (2.5p)
4. Cunoști orele de sosire și de plecare a n autobuze dintr-o stație. Trebuie să calculezi numărul minim de
peroane necesare pentru transferul călătorilor. În fișierul date.in se află pe prima linie numărul natural n, iar
pe următoarele n linii câte 4 numere, separate prin câte un spațiu. Primele 2 numere semnifică ora și minutul
sosirii unui autobuz, iar următoarele 2 ora și minutul plecării autobuzului. Programul va afișa pe ecran numărul
minim de peroane. Ora e în intervalul 0-23, iar minutele în intervalul 0-59. (2p+0.5p dacă sol e
O(n))
Exemplu: