Sunteți pe pagina 1din 4

1.

Pe o masa de dimensiune nxn sunt asezate n2 prisme, fiecare avand baza un patrat de latura 1 si
diverse inaltimi. Pe una din prisme se aseaza un melc care poate trece de pe o prisma pe alta(paralel cu
marginile mesei) numai daca prismele au aceeasi inaltime sau daca melcul coboara. Sa se precizeze daca si
pe ce traseu poate melcul sa coboare de pe masa. Sa se afiseze drumul cel mai scurt al melcului.
ex. Daca inaltimile mesei fiecarei prisme sunt date in matricea
1 6 9 4
2 3 10 24
54 6 9 78
4 5 47 12
iar pozitia initiala a melcului este 2,3 o solutie este:
2,3→2,2→2,1
2,3→1,3

2. Intr camera se afla maimuta sisi si mai multe banane.Se cunosc dimens camerei , poz bananelor(codul
9) precum si coordonatele initiale ale maimutei . Pe dalele din camera care au codul 1 maimuta nu poate pasi
deoarece acolo sunt crocodili. Maimuta se poate deplasa cu cate o pozitie in fiecare din cele 8 poz vecine .Se
cere sa se afiseze cel mai scurt traseu astfel incat maimuta sa manance toate bananele. Sau mesajul imposibil
daca acest lucru nu este posibil.

55
11911
01990
10910
99111
11000
13
Se va afisa
6
1,3 2,3 2,4 3,3 4,2 4,1

3. Intr-o padure se afla Madalina si mai multi ghiocei. Se cunosc dimensiunile padurii, pozitiile
ghioceilor (codul 4) si poziile puntilor (codul 1) . In anumite locuri care au codul 0 sunt mlastini si fata nu
poate pasi. Madalina doreste sa stranga ghiocei pentru mama ei Vasilica cu prilejul zilei de 1 Martie. Ea se
poate deplasa cu cate o pozitie sus, jos, stanga, dreapta. Care este traseul pe care Madalina strange cei mai
multi ghiocei? Daca sunt mai multe astfel de trasee se va afisa unul dintre ele.
Exemplu:
55
11414
01440
10410
44114
11000
Punctul de plecare 3 3
Traseul optim
5 ghiocei
(3,3) -> (2,3) -> (2,4) -> (3,4) -> (4,4) -> (4,3) -> (4,2) -> (4,1) ->
11414
01**0
10*10
**114
11000

4. Scufita rosie
5. Camere gen fill
6. Saritura calului

Să se plaseze pe o tablă de dimensiune n´n, numere de la 1 la n2, pornind dintr-un colţ, prin săritura calului.

Rezolvare:
Această problemă are drept vector soluţie o matrice patratică. Generarea unei soluţii se obţine atunci
când parametrul k este egal cu n*n+1, adică matricea este plină. În zona declarativă a programului se definesc
două constante dx şi dy reprezentând deplasările pe cele două axe, în funcţie de săritura calului. Funcţia valid
cu parametri x şi y are rolul de a verifica dacă punctul de coordonate (x,y) se regăseşte sau nu în interiorul
tablei şi dacă poziţia este bună. Poziţia este bună dacă pe acolo nu a mai trecut calul (a[x][y]=0). În situaţia
în care poziţia nu este validă, calul se va întoarce la poziţia anterioară, dar nu înainte ca poziţia respectivă să
devină bună. Funcţia prel_sol afişează matricea parcursă de cal.

Exemplu:
Pentru n=5, una dintre soluţii pornind din colţul de coordonate (1,1) este:

7. Din cei n elevi ai unei clase, trebuie sa se formeze o delegatie cu x elevi, care sa reprezinte clasa. Se
cunoaste coeficientul de inteligenta al fiecarui elev. In cate moduri se poate forma delegatia, astfel incat suma
coeficientilor de inteligenta ai elevilor din delegatie sa depaseasca o valoare data A ? Elevii sunt numerotati
de la 1 la n.
Ex : n=7, x=4, A=30, c={10,6,7,3,12,4,6}
Delegatiile sunt :
(1,2,3,4) (1,2,3,6) (1,2,3,7) (1,2,4,6) (1,2,4,7) (1,2,6,7) (1,3,4,6) (1,3,4,7) (1,3,6,7) (1,4,5,6)
(1,4,6,7) (2,3,4,5) (2,3,4,6) (2,3,4,7) (2,3,5,6) (2,3,6,7) (2,4,5,6) (2,4,5,7) (2,4,6,7) (2,5,6,7)
(3,4,5,6) (3,4,5,7) (3,4,6,7) (3,5,6,7) (4,5,6,7)
Sunt 25 de solutii

8. Se citeste un numar natural n, care contine macar doua cifre distincte. Se cere:
a) Sa se determine toate numerele care se pot obtine din cifrele numarului initial, avand aceleasi cifre cu
acesta.
b) Sa se afiseze apoi cel mai apropiat numar strict mai mare decat n, care are aceleasi cifre cu acesta.
ex: a) 1653→se vor afisa 24 solutii b) 6153

9. Fiind dat un sir de n numere, sa se afiseze toate multimile de m numere distincte ce se pot forma
astfel incat sa nu existe numere care sa aiba aceeasi suma a cifrelor. Sa se afiseze suma minima a elementelor
din multimile obtinute.
Exemplu:
n=6, m=4 si numerele a={256, 318, 12, 105, 6, 94}
Se va afisa (nu neaparat formatat astfel si nu neaparat in aceasta ordine):
{105,12,318,256}
{94,6,12,318}
{94,105,12,318}
{6,12,318,256} Suma minima este 430

10. Se citeste un numar natural n, cu maxim 9 cifre distincte.


a. Sa se determine toate numerele care se pot obtine din numarul dat, prin eliminarea a k cifre. Se va
pastra ordinea cifrelor din numarul initial (daca cifra a este inantea cifrei b in numarul initial, aceasta ordine
se va pastra si in numerele obtinute).
b. Sa se determine cel mai mare numar astfel obtinut, cu proprietatea ca este divizibil cu suma cifrelor
sale.
Ex : n=68392, k=2
Numerele obtinute sunt : 683 689 682 639 632 692 839 832 892 392
Sunt 10 solutii. Cel mai mare numar divizibil cu suma cifrelor sale este 832

Recapitulare Greedy
1. Se citesc 3 numere naturale S, n si e cu urmatoarele semnificatii: S este o suma de bani care trebuie
platita folosind bancnote care au valori puterile lui e de la 1 la e la n. Se se afiseze modalitatea de
plata folosind un numar minim de bancnote de tipurile precizate. Sa se afiseze la final numarul de
bancnote folosite. Datele se vor citi din fisierul eur.in, iar rezultatele se vor afisa in fisierul eur.out.
2. Exemplu:
eur.in eur.out Explicatie

444 5 2 13 bancnote de valoarea 32 n=5, e=2 rezulta ca bancnotele au valorile


1 bancnote de valoarea 16 1, 2, 4, 8, 16 si 32.
1 bancnote de valoarea 8
1 bancnote de valoarea 4
16

2. Problema rucsacului (cazul continuu)


O persoana are un rucsac cu care poate transporta o greutate maxima g. Persoana are la dispozitie n obiecte
pentru care stie greutatea si castigul obtinut daca transporta obiectul. Fiecare obiect poate fi transportat
integral sau taiat.
Sa se precizeze ce obiecte alege persoana si in ce proportie le ia astfel incat castigul total sa fie maxim si sa
nu se depaseasca greutatea maxima a rucsacului.
Exemplu:
rucsac.in rucsac.out Explicatie

g=3 n=3 1,4,1 Solutie(greutate, castig, raport taiere): 1,4,1


obiectele (greutate,castig): 3,6,0.6667 3,6,0.6667 (al doilea obiect se ia in raport de
2 2 8 2/3)
1 4 castig maxim=8
3 6

3. Problema baloanelor: Având n baloane rotunde (pentru fiecare balon se cunosc coordonatele centrului si
raza lui) care se deplasează pe verticală, se cere să se aleagă un număr cât mai mare dintre acestea astfel încât
să nu se lovească între ele
4
61
21
10 2
42

Creati intervale, ordnati dupa capatu final si alegeti corespunzator


5. Problema numerelor naturale prime şi neprime. Având un set de numere naturale (n, a1, a2, ..., an), se cere
să alegem dintre acestea cât mai multe, dar cel mult k (dat) numere prime astfel încât suma acestora să
depăşească suma celor neprime. Numerele alese se vor afișa în orice ordine.
numere.in numere.out

k=7 n=13 11 3 17 13 7 5 19
11 3 8 17 29 13 9 6 23 7 15 5 19

6. Baloane (VIanu -etapa pe scoala -2012-11-12)


Se dau n baloane sferice, de dimensiuni diferite care coboara vertical. Sa se gaseasca numarul minim de
sageti care pleaca de jos in sus, necesar pentru a sparge toate aceste baloane. O sageata sparge toate baloanele
aflate pe traiectoria sa. Dacă o săgeată atinge tangenţial un balon (doar pe margine) balonul nu se sparge.
Date de intrare
Fişierul de intrare baloane.in contine pe prima linie n, reprezentand numarul de baloane, iar pe urmatoarele
n linii, perechi de numere intregi (xi,ri), reprezentand abscisa centrului si respectiv raza fiecarui balon.
Fiecare dintre cele n perechi de numere se va afla pe o linie din fisier, elementele perechii fiind separate
printr-un spatiu.

Date de ieşire
În fişierul de ieşire baloane.out se va afisa un singur numar, reprezentand numarul minim de sageti necesare.

Restricţii
▪ 1 ≤ n ≤ 100 000
▪ Pentru 50% din teste 1 ≤ n ≤ 1000
▪ 0 ≤ xi ≤ 1 000 000
▪ 1 ≤ ri ≤ 100
▪ Săgeţile pot fi trase din orice punct al abscisei, nu doar din puncte de coordonate întregi.

Exemplu

baloane.in baloane.out
3 2
3 2
3 1
72

Problema spectacolelor
11. Managerul artistic al unui festival trebuie să selecteze o mulţime cât mai amplă de spectacole ce pot fi
jucate în singura sală pe care o are la dispoziţie. Ştiind că i s-au propus n<100 spectacole şi pentru fiecare
spectacol i i-a fost anunţat intervalul în care se poate desfăşura [si, fi) (si reprezintă ora şi minutul de
început, iar fi ora şi minutul de final al spectacolului i) scrieţi un program care să permită spectatorilor
vizionarea unui număr cât mai mare de spectacole. De exemplu, dacă vom citi n=5 şi următorii timpi:
12 30 16 30
15 0 18 0
10 0 18 30
18 0 20 45
12 15 13 0
Spectacolele selectate sunt: 5 2 4.