Sunteți pe pagina 1din 8

1.

Scrieți un program care citeşte o valoare naturală nenulă impară pentru n şi apoi generează
şi afişează în ordine crescătoare lexicografic toate combinaţiile formate din n cifre care
îndeplinesc următoarele proprietăţi:
- încep şi se termină cu 0;
- modulul diferenţei între oricare două cifre alăturate dintr-o combinaţie este 1.
Astfel, pentru n=5, combinaţiile afişate sunt, în ordine, următoarele: 01010, 01210.
Date de intrare
Programul citește de la tastatură numărul n, impar.
Date de ieșire
Programul va afișa pe ecran, pe rânduri separate, soluțiile generate.
Restricții și precizări
 3 ≤ n ≤ 19

Exemplu
Intrare
5
Ieșire
01010
01210

2. Fie n un număr natural.


Să se determine toate posibilitățile de alegere a semnelor + și - pentru care
n = (+|-) 12  + (+|-) 22 + ... + (+|-) n2
Date de intrare
Fișierul de intrare plusminus.in conține pe prima linie numărul n.
Date de ieșire
Fișierul de ieșire plusminus.out va conține pe fiecare linie o succesiune de n semne + sau - ,
separate prin câte un spațiu, reprezentând câte o soluție a problemei. Dacă nu există soluție,
atunci fișierul de ieșire va conține pe prima linie mesajul IMPOSIBIL.
Restricții și precizări
 1 ≤ n ≤ 23
 șirurile se vor afișa în ordine lexicografica; caracterul - este considerat mai mic decăt
caracterul +

Exemplu
plusminus.in
9
plusminus.out
--+-+-++-
+--+--+-+
++--++--+
++++-+--+
Explicație
Sunt 4 posibilități:
1) 9 = -12 – 22 + 32 – 42 + 52 – 62 + 72 + 82 – 92
2) 9 = +12 – 22 – 32 + 42 – 52 – 62 + 72 – 82 + 92
3) 9 = +12 + 22 – 32 – 42 + 52 + 62 – 72 – 82 + 92
4) 9 = +12 + 22 + 32 + 42 – 52 + 62 – 72 – 82 + 92

3. Se dă un număr natural n. Determinaţi, în ordine lexicografică, toate modalităţile de a-l


scrie pe n ca sumă de numere naturale ordonate crescător astfel încât diferența dintre doi
termeni consecutivi ai sumei să fie cel puțin 2.
Date de intrare
Fişierul de intrare partitiinr.in conţine pe prima linie numărul n.
Date de ieşire
Fişierul de ieşire partitiinr.out va conţine pe pe fiecare linie câte un şir de numere naturale
ordonate crescător, separate prin câte un spaţiu. Suma numerelor din fiecare şir este n, iar
diferența dintre oricare doi termeni consecutivi este cel puțin 2. Şirurile vor fi afişate în ordine
lexicografică.
Restricţii şi precizări
 1 ≤ n ≤ 100

Exemplu
partitiinr.in
15
partitiinr.out
1 3 11
1 4 10
159
168
1 14
249
258
2 13
357
3 12
4 11
5 10
69
15

4. Se dau n cuvinte formate doar din litere mici. Trebuie construit un nou cuvânt C de n litere
format astfel: prima literă a lui C este din primul cuvânt, a doua literă este din al doilea
cuvânt, …, a n-a literă este din cel de-al n-lea cuvânt. În plus, literele cuvântului C trebuie să
fie distincte.
Cerința
Să se determine cuvântul C minim lexicografic ce se poate forma utilizând litere distincte
extrase din cuvintele inițiale.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n cuvinte separate prin spațiu.
Date de ieșire
Programul va afișa pe ecran cuvântul C minim lexicografic care se poate obține din litere
distincte.
Restricții și precizări
 1≤n≤9
 Cele n cuvinte au cel puțin o literă și cel mult 6 litere
 Este garantat că C se poate forma din cuvintele inițiale

Exemplu
Intrare
3
gem de caise
Ieșire
eda

5. Fie mulţimea M={1,2,..,n} şi P(1),P(2),...,P(n) o permutare a ei. Elementul x din M se


numeşte punct fix dacă P(x)=x.
Cerinţa
Se citeşte un număr natural nenul n. Să se afişeze, în ordine lexicografică, permutările fără
puncte fixe ale mulţimii {1,2,..,n}.
Date de intrare
Fişierul de intrare permpf.in conţine pe prima linie numărul n.
Date de ieşire
Fişierul de ieşire permpf.out va conţine pe fiecare linie elementele unei permutări, separate
prin câte un spaţiu.
Restricţii şi precizări
 0<n<9

Exemplu
permpf.in
3
permpf.out
231
312

6. Se citește o mulțime cu n numere naturale. Afișați în ordine lexicografică toate permutările


mulțimii citite în care elementul minim și cel maxim nu își schimbă poziția.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin
spații.
Date de ieșire
Programul va afișa pe ecran permutările cerute, pe rânduri separate, fiecare permutare având
elementele separate prin câte un spațiu.
Restricții și precizări
 1 ≤ n ≤ 10
 cele n numere citite vor fi mai mici decât 1.000.000.000 și vor fi distincte

Exemplu
Intrare
6
827945
Ieșire
425978
425987
427958
427985
428957
...
825974
827945
827954
Explicație
În exemplu se generează 24 de permutări în care numerele 2 și 9 nu își schimbă pozițiile.

7. Se dă o tablă dreptunghiulară formată din n linii și m coloane, definind n*m zone, unele


dintre ele fiind libere, altele conținând obstacole. În zona aflată la poziția is, js se află un
șoarece care se poate deplasa pe tablă trecând din zona curentă în zona învecinată cu aceasta
pe linie sau pe coloană. Scopul sau este să ajungă la o bucată de brânză aflată în zona de la
poziția ib, jb, fără a părăsi tabla, fără a trece prin zone care conțin obstacole și fără a trece de
două ori prin aceeași zonă.
Determinați câte modalități prin care șoarecele poate ajunge de la poziția inițială la cea a
bucății de brânză există.
Date de intrare
Fişierul de intrare soarece.in conţine pe prima linie numerele n m, separate printr-un spațiu.
Următoarele n linii conțin câte m valori 0 sau 1, separate prin exact un spațiu, care descriu
tabla – valoarea 0 reprezintă o zonă liberă, valoarea 1 reprezintă o zonă ocupată cu un
obstacol. Pe linia n+2 se află 4 numere separate prin exact un spațiu, reprezentând is js ib jb.
Date de ieşire
Fişierul de ieşire soarece.out va conţine pe prima linie numărul S, reprezentând numărul de
modalități prin care șoarecele poate ajunge de la poziția inițială la cea a bucății de brânză.
Restricţii şi precizări
 1 ≤ n,m ≤ 10
 1 ≤ is,ib ≤ n, 1 ≤ js,jb ≤ m
 poziția șoarecelui și cea a bucății de brânză nu sunt identice și sunt libere

Exemplu
soarece.in
67
0000000
0111100
0000110
0110100
0110101
0000000
4126
soarece.out
8

8. Se dă o tablă de șah formată din n linii și m coloane, definind n*m zone, unele dintre ele


fiind libere, altele conținând obstacole. În zona de coordonate 1 1 se află un cal care se poate
deplasa pe tablă în L, ca la șah, fără a părăsi tabla, fără a trece prin zone care conțin obstacole
și fără a trece de două ori prin aceeași zonă.
Determinați o modalitate prin care calul poate ajunge în zona de coordonate n m – unde se
află o căpiță de fân.
Date de intrare
Fişierul de intrare traseucal.in conţine pe prima linie numerele n m, separate printr-un spațiu.
Următoarele n linii conțin câte m valori, care descriu tabla: 0 corespunde unei zone libere,
caracterul 1 corespunde unei zone ocupate de un obstacol.
Date de ieşire
Fişierul de ieşire traseucal.out va conţine n linii, pe fiecare linie fiind câte m numere, care
descriu traseul calului, astfel:
 zonelor prin care nu va trece calul le corespund valoarea 0.
 zonei în care se află inițial calul îi corespunde valoarea 1
 următoarei zone din traseul calului îi corespunde valoarea 2
 fiecărei zone din traseul calului îi corespunde o valoare număr natural semnificând la
al câtelea pas ajunge calul în acea zonă.
Numerele de pe fiecare linie fișierului de ieșire sunt separate prin exact un spațiu.
Restricţii şi precizări
 1 ≤ n,m ≤ 10
 zona în care se află calul și zona în care trebuie să ajungă sunt libere
 dacă nu există nicio modalitate prin care calul va ajunge la căpița de fân toate
cele n*m numere din fișierul traseucal.out vor fi zero.
 oricare traseu valid al calului este considerat corect

Exemplu
traseucal.in
45
00100
00100
00000
00010
traseucal.out
14000
00030
02500
00006

9. Se consideră o tablă de joc de formă dreptunghiulară, împărţită în n lini şi m coloane. Se


obţin astfel n*m zone şi se cunoaște înălțimea fiecărei zone. La o poziție cunoscută –
linia istart, coloana jstart se află o bilă care se poate deplasa pe o poziție vecină (sus, jos,
stânga, dreapta) doar dacă înălțimea poziției vecine este strict mai mică decât înălțimea
poziției curente.
Determinați numărul maxim de zone prin care poate să treacă bila pentru a ajunge pe una
dintre marginile tablei de joc.
Date de intrare
Fişierul de intrare bila.in conţine pe prima linie numerele n și m. Următoarele n linii conțin
câte m numere naturale strict pozitive reprezentând înălțimile fiecărei zone.
Pe linia n+2 se află două numere istart, jstart cu semnificația din enunț.
Date de ieşire
Fişierul de ieşire bila.out va conţine pe prima linie numărul P, reprezentând numărul maxim
de zone prin care poate să treacă bila pentru a ajunge pe una dintre marginile tablei de joc,
inclusiv zona inițială.
Restricţii şi precizări
 1 ≤ n,m ≤ 20
 liniile și coloanele sunt numerotate de la 1
 înălțimea fiecărei zone este cuprinsă între 1 și 50
 când bila ajunge pe o margine a tablei, se oprește acolo. Nu mai continua pe acea
margine și nu se poate întoarce în interiorul tablei.
 dacă nu este posibil ca bila să ajungă pe marginea tablei se va afișa valoarea 0

Exemplu
bila.in
45
44315
87213
96321
25437
22
bila.out
5
Explicație
44315
87213
96321
25437
10. Se consideră o tablă de şah cu n linii şi m coloane. La o poziţie dată se află un cal de şah,
acesta putându-se deplasa pe tablă în modul specific acestei piese de şah (în L).
Să se determine o modalitate de parcurgere integrală a tablei de către calul dat, astfel încât
acesta să nu treacă de două ori prin aceeaşi poziţie.
Date de intrare
Programul citește de la tastatură numerele n şi m , apoi numere x y, reprezentând dimensiunile
tablei (numărul de linii şi numărul de coloane) , respectiv coordonatele iniţiale ale calului
(linie, coloana).
Date de ieşire
Programul afișează n linii cu câte m numere naturale cuprinse între 1 și n*m, separate prin
exact un spațiu, reprezentând parcurgerea solicitată.
Restricţii şi precizări
 1 ≤ n,m ≤ 6
 1≤x≤n
 1≤y≤m
 pentru fiecare dintre testele propuse, există soluție

Exemplu
Date de intrare
4511
Date de ieșire
1 12 7 16 3
6 17 2 11 8
13 10 19 4 15
18 5 14 9 20

11. Hercule trebuie sa strabată un labirint cu capcane reprezentat de o matrice cu n linii


și m coloane. Pentru fiecare celula a labirintului, se cunoaște timpul exprimat în minute după
care celula respectivă devine capcană. După ce o celula devine capcana, Hercule piere dacă
intră în acea celulă. Initial Hercule se află în celula de coordonate (1, 1) și trebuie să ajungă în
celula de cordonate (n,m).
Sa se afișeze numarul total de drumuri pe care le poate urma Hercule prin labirint, astfel încât
Hercule să nu piară.
Date de intrare
Fișierul de intrare hercule.in conține pe prima linie numerele n m, iar pe următoarele n linii
câte m valori naturale.
Date de ieșire
Fișierul de ieșire hercule.out va conține pe prima linie numărul total de drumuri prin care
Hercule poate ajunge în celula destinație.
Restricții și precizări
 1 ≤ n , m ≤ 10
 Hercule nu poate intra de mai multe ori in aceeasi celula
 Hercule are nevoie de un minut,ca sa treacă dintr-o celula într-una vecină
 Hercule se deplasează pe direcțiile N-S și E-V.
Exemplu
hercule.in
45
41181
63451
32888
13429
hercule.out
2
Explicație
Cele două trasee posibile ale lui Hercule sunt:
10000
23450
00067
00008
şi
10000
23400
00567
00008

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