Proba scris pentru admiterea la examenul de MASTERAT
Subiectul 1 a) Se d un arbore binar de cutare cu cel puin 3 elemente (numere ntregi). Elaborai un algoritm care afieaz cel mai mare, al doilea i al treilea element stocate n aceast structur de date. b) Se d un ansamblu (max-heap, max-ansamblu) n reprezentarea implicit (reprezentarea secvenial) ntr-un vector. Acest ansamblu conine n>3 elemente numere ntregi distincte. Elaborai un algoritm care ntr-un numr optim de pai afieaz cele mai mari 3 elemente i cele mai mici 3 elemente din ansamblu. c) Se dau doi vectori care modeleaz mulimi de numere naturale (n nici unul dintre vectori nu avem dubluri). Elaborai un algoritm care ntr-un numr optim de pai construiete vectorul pentru reuniunea i intersecia celor dou mulimi.
Exemplu: Date de intrare Date de ieire A = [4, 7, 10, 3, 1, 9], B = [2, 3, 1, 7, 5, 8, 4] Reuniune = [4, 7, 10, 3, 1, 9, 2, 5, 8], Intersecie = [4, 7, 3, 1]
Subiectul 2 Se d un tablou unidimensional de numere naturale care nu se repet. Elaborai un algoritm cu o complexitate ct mai bun care s elimine un numr minim de elemente astfel nct, n subirul rezultat din aceste eliminri, s fie ndeplinit urmtoarea condiie: orice element s aib n stnga sau n dreapta lui doar elemente mai mici dect el. Se consider c primul i ultimul element (neavnd elemente n stnga, respectiv n dreapta) satisfac implicit aceast cerin. Dac exist mai multe soluii, se va afia una dintre ele (se afieaz elementele rmase).
Exemplu: Date de intrare Date de ieire 19 18 13 20 14 10 21 22 19 20 14 10
Subiectul 3 Fie n un numr natural ntre 1 si 10000. Elaborai un algoritm cu o complexitate ct mai bun care, primind la intrare n, s afieze numrul de cifre de 1 al celui mai mic multiplu al lui n care este format numai din cifra 1. Pentru un n pentru care problema nu admite soluie se va afia 0.
Exemplu: Date de intrare Date de ieire 3 3 4 0 7 6 Atenie: multiplul format doar din cifra 1 poate fi un numr mult mai mare dect maximul admis de orice tip numeric.
Subiectul 4 Se consider o tabl de ah de dimensiuni n x m (n numrul de linii, m numrul de coloane). n fiecare careu al tablei este plasat cte un obiect, fiecare cu o anumit valoare (numr natural). Pe tabl se deplaseaz un robot astfel: pornete de pe prima coloan, de pe o linie dat i 0
i se poate deplasa de pe coloana pe care se afl doar pe coloana urmtoare, n una dintre poziiile vecine (orizontal, pe diagonal n sus sau pe diagonal n jos). La parcurgerea unei celule robotul adun obiectul din celul. Elaborai un algoritm cu o complexitate ct mai bun care s determine un traseu al robotului, pornind din celula (i 0 , 1) pn la o celul de pe ultima coloan, (k,m), 1kn, astfel nct valoarea total a obiectelor adunate s fie maxim. Datele de intrare (n, m, i 0 , matricea) se citesc dintr-un fiier. Se vor afia: suma maxim i traseul parcurs pentru a o obine n formatul (l, c, v) unde l reprezint linia, c coloana i v valoarea aflat n celula (l,c).
Exemplu Date de intrare Date de ieire n = 4, m = 5, i 0 = 2 1 5 2 4 6 2 0 3 5 2 3 6 4 4 4 4 2 3 7 5 Suma maxim este: 24 Traseul parcurs este: (2,1,2),(3,2,6),(3,3,4),(4,4,7),(4,5,5)
Observaii
Subiectele se vor rezolva ntr-un limbaj de programare studiat n facultate (C/C++/Java). Pentru fiecare soluie se vor argumenta corectitudinea i complexitatea timp a algoritmilor folosii i se vor explica informal algoritmii i detaliile de implementare sub form de program: variabile, structuri de date, structuri iterative, instruciuni condiionale. Punctajul se va acorda difereniat, n funcie de complexitate gsit, n raport cu cea optim (se vor acorda punctaje pariale).
Se vor trata 2 subiecte, la alegere, pe coli separate. Timp de lucru: 3 ore.