Sunteți pe pagina 1din 1

Metoda BACKTRACKING

1. Sa se scrie un program Pascal care sa calculeze cate perechi de numere naturale nu depasesc un numar dat n si au cel
mai mare divizor comun un numar natural dat d.
2. In fisierul “Numere.in” se dau:
- pe prima linie un numar natural n<=15;
- pe a doua linie n numere naturale x[1], x[2], ..., x[n] mai mici sau egale cu 10000 separate printr-un spatiu;
- pe a treia linie un numar natural S cu cel mult 9 cifre.
Se cere sa se determine sirurile de semne + si – ce trebuiesc puse in fata numerelor x[1], x[2], ..., x[n] pentru ca
rezultatul expresiei obtinute sa fie egal cu S.
3. Sa se scrie in fisierul text “Nre.out” toate numerele de n cifre egale cu de k ori produsul cifrelor. n si k se citesc de la
tastatura, si 1<=n<=9, 1<=k<=10000.
4. Exista n someri. Ei trebuie sa se reprofileze , fiecare in cate una din cele n meserii. Scolarizarea somerului i in meseria j
prezinta costul c(i,j). Somerii trebuie sa se scolarizeze fiecare in cate o meserie diferita de a celorlalti. Se citesc de la
tastatura n si apoi tabloul bidimensional c(n,n). Sa se precizeze toate posibilitatile de atribuire a celor n meserii pentru
cei n someri si care este costul total al scolarizarii tuturor pentru fiecare repartizare a lor pe cele n meserii.
5. La o admitere se dau n examene. La primul examen se pot obtine de la 0 la p1 puncte, la al doilea se pot obtine de la 0
la p2 puncte, etc. Pentru reusita, un candidat trebuie sa obtina cel putin m puncte in total. Sa se scrie un program care
genereaza toate variantele de punctaje ce trebuie obtinute la cele n examene si care conduc la reusita.
6. Se citeste de la tastatura numarul natural n. Sa se foloseasca metoda backtracking pentru generarea tuturor matricilor
patratice binare de dimensiune nxn, cu proprietatea ca in fiecare coloana exista exact o cifra de 0.
7. Se da o tabla de sah de dimensiuni nxn patrate. Sa se aseze pe ea n regi, cate unul pe o linie, astfel incat sa nu se atace
oricare 2 dintre ei.
8. Sa se afiseze, cate unul pe o linie, toate subsirurile strict crescatoare de lungime k (k<10) ale unui sir de numere reale
date. Sirul se citeste din fisierul text “Sir.in”, iar k de la tastatura.
9. Sa se genereze k vectori diferiti, fiecare vector generat fiind format din n elemente 1 si 0, suma elementelor sale
neavand voie sa depaseasca valoarea s. Valorile k, n si s se citesc de la tastatura, vectorii generati fiind salvati in
fisierul “P3.out”, cate unul pe o linie, elementele liniei fiind despartite prin cate un spatiu.
10. Utilizand m culori (maximum 5), numerotate de la 1 la m, sa se coloreze in toate modurile posibile n piloni (maximum
10), care initial sunt albi, aflati pe o suprafata oarecare, daca acestia “se vad“ intrei ei si doi piloni care “se vad” intre
ei nu trebuie sa aiba aceasi culoare. Pilonii sunt in relatie “se vad” intre ei daca orice linie imaginara care uneste doi
piloni nu trece printr-un camp ocupat de alt pilon. Datele de intrare sunt: numarul n de piloni, perechi x si y care
semnifica faptul ca x si y “se vad”, numarul m de culori, si denumirile culorilor. Se cere sa se afiseze toate solutiile
posibile de colorare a pilonilor.
11. Intr-o mare inchisa sunt n porturi, maxim 10. Stationarea intr-un port se taxeaza printr-un cost asociat. Sa se stabileasca
toate voiajele distincte dintre p porturi (p<=n) care nu depasesc un cost total de statioanre. Porturile au denumiri de
maxim 16 caractere, iar costurile si costul toatal sunt numere reale.
12. Sa se afiseze toate posibilitatile de aranjare pe o caseta a n melodii, codificate cu numerele naturale de la 1 la n, astfel
incat melodia x sa se cante dupa melodia y (x, y valori citite iar n<<10).
13. Se considera n piese de domino citite ca n perechi de numere naturale fiecare pe cate un rand de intrare. Sa se afiseze
toate solutiile de asezare a acestor piese intr-un lant-domino de lungime a citita de la tastatura, fara a roti piesele. (Un
lant-domino se alcatuieste din piese de domino astfel incat o piesa este urmata de o alta a carei prima jumatate coincide
cu jumatatea a doua a piesei curente).
14. Sa se elaboreze toate variantele de chestionare ce se pot obtine dintr-un set total de n intrebari (maxim 20) care sa aiba
intre a si b intrebari, iar intrebarile sa totalizeze p si maximum q puncte. Se citesc in ordine: numarul de intrebari, apoi
fiecare intrebare, text de maximum 100 de caractere, urmata de punctajul sau si la sfarsit limitele a, b, p si q.
15. Se considera n cuburi (max. 10), numerotate de la 1 la n, de laturi si culori cunoscute. Datele fiecarui cub se citesc de
pe cate un rand de intrare, in ordinea: nr.cub, latura, culoare. Sa se numere si alcatuiasca toate turnurile posibile din h
cuburi astfel incat fiecare turn sa aiba stabilitate (orice cub se aseaza peste un cub cu latura mai mare sau egala cu a lui)
si sa nu existe doua cuburi consecutive de aceeasi culoare. Fiecare solutie se va lista distinct, asrfel ca utilizatorul sa
aiba timp sa o citeasca, va specifica numarul turnului si va cuprinde h grupuri de informatii de tipul: nr. cub latura
culoare.
16. Sa se alcatuiasca toate sirurile posibile din n numere naturale a1, a2, ... , an, citite, astfel incat in orice sir creat sa nu
existe doua numere consecutive asezate alaturi. Solutiile se vor afisa secvential, astfel incat utilizatorul sa le poata citi.
17. Se citesc de la tastatura un numar natural n (n<=20) si un numar natural v (v<n). Sa se scrie un program care afiseaza
toate numerele de la 1 la n in toate modurile posibile astfel incat intre oricare doua numere succesive diferenta in modul
sa fie mai mare decat v. Datele de iesire se vor scrie in fisierul “Iesire.dat”. Daca nu exista nici o solutie, se va scrie in
fisierul de iesire un mesaj corespunzator.

S-ar putea să vă placă și