Sunteți pe pagina 1din 9

Probleme Atestat Informatica 2012

1. Sa se genereze toate sirurile de lungime m (1m10) formate din divizori ai unui numar natural x (1x999), aflati in ordine crescatoare. Fiecare sir rezultat va fi scris pe cate o linie in fisierul text sir.out , iar numerele de pe linie vor fi despartite prin cate un spatiu. In cazul in care nu exista solutie se va scrie mesajul Imposibil. 2. Sa se genereze toate cuvintele de lungime n (n10) ale alfabetului Morse (formate doar din caracterele - si .) care nu incep si nu se termina cu caracterul -. Fiecare cuvant va fi scris pe cate o linie in fisierul text morse.out. 3. Se considera sirul cifrelor de la 0 la 9. Sa se genereze toate numerele de n cifre (n9) care nu contin trei cifre pare sau trei cifre impare alaturate. Fiecare numar rezultat va fi scris pe cate o linie in fisierul text cifre.out. 4. Sa se genereze toate tablourile patratice binare de ordin n (n10), care au proprietatea ca atat fiecare linie cat si fiecare coloana contin exact un element egal cu 1. Fiecare tablou va fi afisat pe n linii in fisierul text matrice.out , numerele in cadrul liniei fiind separate prin cate un spatiu. In fisier, intre tablourile rezultate va exista o linie goala. Exemplu: Pentru n=2 matrice.out 01 10 10 01 5. Se citesc de la tastatura numerele naturale n (n10) si m (m50). Consideram primele m numere prime de cel putin doua cifre. Sa se scrie in fisierul prime.out toate sirurile de n numere prime distincte alese din cele m, fiecare sir scris pe cate o linie. Exemplu: Pentru n=2 si m=3 prime.out 11 13 13 11 11 17 17 11 13 17 17 13

6. Profesorul de sport vrea sa aseze eleii in ordinea crescatoare a inaltimii lor. Cunoscand numele si inaltimea fiecarui elev dintre cei n (n10), sa se scrie in fisierul sport.out variantele pe care le are profesorul. Fiecare sir corect va fi scris pe cate o linie, numele copiilor fiind despartite prin cate un spatiu. Exemplu: Pentru n=4 si copii sport.out maria 1.65 ion maria ana mihai ion 1.60 ion ana maria mihai mihai 1.78 ana 1.65 7. Se citesc de la tastatura numerele naturale n (n 10 9 ) si m (m9). Cpnsideram sirul primelor m cifre distincte ale lui n (cele mai mici). Sa se scrie, pe o singura linie, in fisierul nr.out toate numerele a caror scriere in baza 10 foloseste numai cifre din sirul primelor m. Numerele vor fi scrise in fisier in ordine crescatoare, despartite prin cate un spatiu. Ele nu vor contine mai mult de m cifre. Exemplu: Pentru n=48311378 si m=2 Sirul primelor m cifre distincte ale lui n este format din {1,3} iar fisierul nr.out contine numerele: 1 3 11 13 31 33 8. Se citesc de la tastatura numerele naturale n (n 10 9 ) si S (S45). Sa se afiseze toate submultimile de suma S, formate din cifrele lui n. Fisierul text subm.out va contine, pe cate o linie, cifrele dintr-o submultime generata. Exemplu: Pentru n=211357 si S=10 subm.out 235 37 217 9. Sa se genereze toate numerele naturale care sunt reprezentate in baza 2 prin m (m9) cifre, dintre care p cifre de 1. Valorile ce constituie solutii vor fi afisate pe ecran pe o singura linie. Exemplu: Pentru m=4 si p=2 Se va afisa: 9 10 12

10. Consideram n (n10) tipuri de monede. Din fiecare tip avem la dispozitie un numar nelimitat de monede. Generati toate modelitatile de plata a unei sume S (S30000), in conditiile date. In fisierul monede.out vor fi afisate variantele in formatul din exemplu. Exemplu: Pentru S=5, n=4 si valorile monedelor: monede.out 2,8,1,4 5*1 3*1 + 1*2 1*1 + 1*4 1*1 + 2*2 11. Consideram un sir de n (n10) cifre. Plasati in fata oricarei valori unul din operatorii +,-,* astfel incat expresia rezultata sa aiba valoarea S. Cifrele nu isi vor schimba pozitiile in cadrul sirului. Afisati pe ecran, pe cate o linie, expresiile obtinute. Exemplu: Pentru S=5, n=4 si valorile: Se va afisa: 2814 +2+8-1-4 12. Se considera un sir de n (n10) litere mici distincte. Sa se genereze toate cuvintele care verifica urmatoarele conditii: - un cuvant contine exact m litere din sirul celor n; - literele din care este format, apar in ordine lexicografica (crescatoare) Datele de intrare se citesc de la tastatura, iar solutiile vor fi scrise in fisierul de iesire sir.out pe o singura linie, despartite prin cate un spatiu. Ele vor forma un sir ordonat lexicografic crescator. Exemplu: Pentru n=4, m=2 si sirul de litere: sir.out badc ab ac ad bc bd cd 13. Se considera o lista formata din n (n10) cuvinte. Sa se construiasca cu ele cel mai lung sir in care fiecare cuvant folosit un sir are ultima litera mai mica in sens lexicografic decat prima litera a cuvantului urmator. Datele de intrare se citesc de la tastatura, iar sirul maximal va fi scris in fisierul de iesire sir.out. Exemplu: Pentru n=4 si cuvintele: sir.out ana,capat,repede,merge anarepedemerge 14. Se considera un sir de n (n10) cuvinte si un numar m (m20) natural. Se cere determinarea celui mai lung cuvant format prin alipirea cuvintelor date in care nicio litera nu apare de mai mult de m ori. Nu conteaza ordinea in care sunt concatenate cuvintele. Datele de intrare se citesc de la tastatura, iar sirul maximal va fi scris in fisierul de iesire sir.out.

Exemplu: Pentru n=5, m=3 si cuvintele: cand,ploate,frunza,pica,toamna

sir.out poatefrunzacand

15. Consideram un vector A ce contine n (n10) numere intregi. Vom spune ca doua elemente ala sale formeaza o pereche in dezzordine daca sunt indeplinite simultan conditiile: - i<j, unde 1i<n si 1<jn - a[i]>a[j] Sa se creeze un program care sa genereze toate sirurile care contin acelasi numar de perechi in dezordine ca al vectorului initial. Datele de intrare vor fi citite de la tastatura. Fisierul text perechi.out va contine pe cate o linie cate un sir generat. Exemplu: Pentru n=4 si vectorul A=(1,3,2,4) perechi.out 1243 2134 16. Consideram un vector A ce contine n (n10) numere intregi. Sa se genereze toate permutarile acestuia care respecta conditia ca cel mai mic sic el mai mare numar sa ramana pe pozitiile initiale. Datele se introduce de la tastatura, iar solutiile obtinute vor fi afisate pe ecran, cate un ape fiecare linie. Exemplu: Pentru n=4 si vectorul A=(2,23,2,1) Se va afisa: 3 23 2 1 2 23 3 1 17. Se considera un numar natural n (n100). Sa se determine toate modurile de scriere a lui ca suma de numere prime. Solutiile obtinute vor fi afisate pe ecran, cate un ape fiecare linie. Exemplu: Pentru n=14 Printre solutiile afisate vor fi: 2222222 33332 3335 3 11 77 18. Se considera o tabla de sah de dimensiune n x m (n,m10). Sa se determine toate modurile de asezare a n dame pe tabla, astfel incat acestea sa nu se atace reciproc(linie,coloana sau diagonala). 19. Consideram un sir de n (n10) scaune. Pe acestea au fost asezati copii identificati prin numele lor. Determinati toate modalitatile de reasezare a copiilor pe scaune, astfel incat niciunul dintre ei sa nu aibe aceiasi vecini ca in aranjamentul

initial. Solutiile obtinute vor fi afisate pe ecran, cate un ape fiecare linie, iar cuvintele vor fi despartite prin cate un spatiu. Exemplu: Pentru n=4 si arnjamentul initial: Se va afisa: ana, maria, ion, vlad maria vlad ana ion ion ana vlad maria 20. Pentru un numar natural par n (n10), se cere realizarea unui program care genereaza toate sirurile de paranteze rotunde care se inched corect. Solutiile se vor afisa pe ecran. Exemplu: Pentru n=6 se va afisa: ()()() , (())(), ()(()) , (()()) , ((())). 21. Consideram codificarea unei fotografii alb-negru o matrice binara cu n linii si m coloane (n,m7). Obiectele contin puncte negre codificate cu valoarea 1 in matrice, iar culoarea alba cu 0. Doua elemente egale cu 1 fac parte din acelasi obiect daca sunt vecine pe linie, coloana sau diagonala. Colorati obiectele din fotografie cu numere de la 2 la nr+1 (nr reprezinta numarul de obiecte din fotografie). Din fisierul foto.in se citesc, de pe prima linie, numerele n si m, iar de pe urmatoarele n linii, codificarea fotografiei. In fisierul foto.out se va scrie matricea obtinuta in urma procesului de colorare. Exemplu: foto.in foto.out 01001 02003 10001 20003 00100 00400 01110 04440 22. Consideram o harta a unei regiuni muntoase codificata sub forma unei matrice cu n linii si m coloane (n,m7). Un alpinist se afla in punctual de coordinate (x,y) si vrea sa paraseasca zona muntoasa. El se poate deplasa in orice zona vecina pe linie sau coloana, in care diferenta de altitudine nu este mai mare decat o valoare h cunoscuta, fara sa treaca de doua ori prin aceeasi zona. Realizati un program care determina traseele pe care le poate urma alpinistul. Din fisierul harta.in se vor prelua de pe prima linie, in ordine, numerele n,m,h,x,y, iar de pe urmatoarele linii, codificarea hartii. In fisierul harta.out se vor scrie traseele determinate in formatul din exemplu. Exemplu: harta.in harta.out 3 5 10 2 2 (2,2)(1,2) 13 14 27 98 15 (2,2)(3,2)(3,3)(3,4)(2,4)(2,5) 32 21 82 33 32 43 23 24 32 65

23. Un rau urmeaza sa fie traversat de n personae avand greutatile g1,g2,...,gn. Barca pe care o au la dispozitie poate suporta o greutate de maximum Gmax kilograme. Vaslasul se considera a avea greutate neglijabila. Sa se determine o modalitate de a imbraca persoanele astfel incat sa se efectueze cat mai putine transporturi. Datele se citesc de la tastatura, iar solutia se va afisa pe ecran, in formatul din exemplu. Exemplu: Pentru n=4m Gmax=100 si greutatile: {41,59}{98,2} 41,98,2,59 24. La un concurs de gastronomie, sectiune Cofetarie, proba eliminatory consta in pregatirea rapida a celei mai ieftine prajituri. Cofetarii participanti au la dispozitie N tipuri de incrediente, numerotate distinct cu valori de la 1 la N. Fiecare ingredient este disponibil in cantitati nelimitate. Pentru fiecare ingredient este cunoscut pretul pentru 100 grame. Se stie ca exista ingrediente care nu pot fi combinate in aceeasi prajitura (le vom numi ingrediente incompatibile). Prajitura trebuie sa contina exact M ingrediente compabile, in proportii fixe date pr1,pr2,,prM. Mai exact, primul ingredient ales reprezinta pr1% din greutatea prajiturii, al doilea ingredient reprezinta pr2% din greutatea prajiturii, etc. Scrieti un program care sa determine cele M ingrediente compatibile, cu care, in proportiile date pr1,pr2,,prM, sa poata preparata cea mai ieftina prajitura. Datele de intrare se citesc din fisierul text COFET.IN cu urmatoarea structura: N // numarul de ingrediente disponibile p1 p2 pN // preturile pe 100g ale fiecarui ingredient k // numarul de relatii de incompatibilitate x1 y1 // ingredientele x1 si y1 sunt incompatibile x2 y2 // ingredientele x2 si y2 sunt incompatibile xk yk // ingredientele xk si yk sunt incompatibile M // numarul de ingrediente ca trebuie folosite in prajitura pr1 pr2 prM // proportiile in care apar cele M ingrediente in prajitura Datele de iesire se vor scrie in fisierul COFET.OUT cu urmatoarea structura: Cmin // costul unui kg din cea mai ieftina prajitura c1 c2 cM // ingredientele alese Restrictii si precizari: - toate valorile care intervin in enuntul problemei sunt numere naturale nenule - datele de intrare sunt corecte si pentru datele de test exista intotdeauna solutie - 1<M<N<50 - 0<pi<10000 - pr1+pr2++prM=100 - xi,yi {1,2,,N}

25. Pe o tabla de sah de 8x8 patrate se afla un numar oarecare de pioni, fiecare intrun patrat separate. Vecinii unui pion se afla pe una din directiile orizontala, varticala sau diagonala. Scrieti un program care testeaza daca pionii aranjati astfel formeaza o singura figura plina (fara orificii, cu interiorul figurii format numai din pioni) si care sa determine numarul pionilor de pe conturul figurii formate, precum si numarul total de pioni cu care s-a format figura. Un pion se considera ca este pe contur daca numarul vecinilor sai este strict mai mic decat 8. Exemplu: pioni.in pioni.out . . . . P . . . Figura nu este plina. . . . P . P . . Contur=10 . . P . . . P. Total=10 . . . P . . . P . . . . P . P . . . . . . P . . . . . . . . . . . . . . . . . . 26. Un fermier are un teren care are forma unui tablou dreptunghiular lung de M unitati si lat de N unitati (1N, M50). Pe teren sunt plantati din loc in loc copaci, pe care fermierul nu doreste sa-i taie. Dorind sa-si supravegheze cultura, fermierul realizeaza un mic robot de forma patrata avand latura de 3 unitati pe care il poate teleghida prin ferma, parcurgand unitate cu unitate o anumita suprafata. Robotul se poate misca pe verticala si pe orizontala, dar nu poate trece peste copaci, nu ii poate distruge, nu se poate roti si are nevoie pentru miscare de o suprafata corespunzatoare dimensiunii lui. Scrieti un program care sa determine suprafata maxima pe care fermierul o poate urmari, folosind acest system. Date de intrare: Fisierul de intrare FERMA.IN contine: NM C11 C12 C1M C21 C22 C2M CN1 CN2 CNM Ultimele N linii codifica ferma; fiecare linie contine cate M caractere,fara sa fie separate prin spatii, avand semnificatia: . teren liber , + locul in care este plantat un copac, R centrul robotului. Date de iesire: Fisierul de iesire FERMA.OUT va contine: C11 C12 C1M C21 C22 C2M CN1 CN2 CNM Modul in care fermierul poate sa utilizeze robotul pe terenul sau este codificat pe N linii, ; fiecare linie contine cate M caractere,fara sa fie separate prin spatii, avand semnificatia: . teren neaoperit de robot , * teren verificat, + copac.

27. Romeo si Julieta sunt prinsi intr-un labirint reprezentat sub forma unei matrice cu M linii si N coloane cu elemente 0 si 1. Un element 1 reprezinta zid, iar 0 reprezinta spatiu liber. Romeo si Julieta se afla initial in patratelele (1,1) Romeo si (M,N) Julieta ale matricei (care contin valoarea 0), se pot deplasa numai pe patratele care contin 0 si nu pot parasi matricea. Pentru a evada din labirint, Romeo trebuie sa ajunga in patratelul (i1,j1), iar Julieta la (i2,j2). Dispuneti de un sir de mutari pe care cei doi le pot efectua. Sirul e format din K mutari, codificate prin litere N,E,S si V, reprezentand deplasari de un patratel spre nord, est, sud sau vest. Romeo si Julieta trebuie sa efectueze TOATE mutarile din acest sir, in ordinea data. Dumneavoastra sunteti cel care decide daca o anumita mutare va fi facuta de Romeo sau de Julieta. Se stie ca sirul de mutari permite ajungerea celor doi la destinatii. Scrieti un program care sa decida care dintre mutari vor fi effectuate de Romeo si care de Julieta. LABIRINT.IN LABIRINT.OUT 55 RJRRRJ 00100 sau RJRRJR 00011 00000 10000 01000 2244 6 SNEEVV 28. Se considera un labirint. Labirintul este dat sub forma unei matrice de dimensiune n x m. Un element de pe pozitia (i,j) din aceasta matrice are valoarea 0 daca pozitia este libera si valoarea 1 daca pe pozitia (i,j) este zid. In acest labirint se afla un robot care este dotat cu dispozitive de distrugere a zidurilor. Costul deplasarii dintr-o pozitie care are valoarea 0 intr-o pozitie care are valoarea 0 este 1, iar costul deplasarii dintr-o pozitie care are valoarea 0 intr-o pozitie care are valoarea 1 este 2(caz in care zidul e distrus). Cunoscand coordonatele la care se afla robotul in labirint, determinati drumul avand costul minim pana la iesirea din labirint. Robotul a iesit din labirint daca a ajuns intr-o pozitie de pe marginea matricei care are valoarea 0 (fie se afla pe prima sau pe ultima linie sau coloana din matrice). Date de intrare: Pe prima linie a fisierului de intrare se afla doua numere naturale n si m care reprezinta dimensiunile labirintului. Pe urmatoarele n linii se afla cate m numere naturale separate prin spatii, reprezentand codificarea labirintului. Pe urmatoarea linie se afla doua numere naturale x si y, separate printr-un singur spatiu, care reprezinta coordonatele la care se afla robotul in labirint. Date de iesire: Pe prima linie a fisierului de iesire se va scrie costul minim al unui drum pana la iesirea din labirint, iar pe urmatoarea linie se va afla o succesiune de litere din multimea {N,S,E,V} care reprezinta deplasarea robotului.

Restrictii si precizari: - 1m, n255 - in cazul in care exista mai multe solutii in fisierul de iesire se va scrie una singura. Exemplu: ROBOT.IN ROBOT.OUT 55 3 10110 VNN 10011 10001 00110 1111 33 29. In anul 3456, dupa distrugerea partiala a Terrei de catre extraterestri, datorita unor neintelegeri, conducatorul civilizatiei extraterestre care i-a atacat pe pamanteni a decis ca va distruge complet planeta. Deoarece conducatorul extraterestrilor considera ca pamantenii nu sunt fiinte inteligente, a decis ca va anula distrugerea daca pamantenii rezolva urmatoarea problema: Se considera o matrice in care se afla numai litere mici ale alfabetului englezesc si un cuvant format din litere distincte ale alfabetului englezesc. Sa se gaseasca numarul total de aparitii ale acestui cuvant in cadrul matricei, stiind ca acesta poate sa apara sub orice forma (de la stanga la dreapta, de jos in sus, in forma de spirala,etc.) Date de intrare: Pe prima linie a fisierului de intrare se afla doua numere naturale n si m, reprezentand dimensiunile matricei. Pe urmatoarele n linii se afla cate m caractere care reprezinta cate o linie din matrice. Caracterele nu sunt despartite prin spatii. Pe urmatoarea linie se afla cuvantul al carui numar de aparitii trebuie determinat. Date de iesire: Pe prima linie a fisierului de iesire se va scrie numarul total de aparitii al cuvantului in cadrul matricei. Restrictie: 1m, n255 Exemplu: EXTRA.IN EXTRA.OUT 55 22 ababb babba abbba abcde sdase ab

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