Documente Academic
Documente Profesional
Documente Cultură
a) cuvântul magic;
b) numărul fermecat;
Date de intrare:
Fişierul magic.in conţine pe prima linie un număr natural n, reprezentând numărul de caractere scrise pe copaci.
Pe cea de a doua linie sunt n caractere separate prin câte un spaţiu, reprezentând caracterele scrise pe copaci.
Date de ieşire
Fişierul de ieşire magic.out va conţine două linii:
a) pe prima linie se va scrie un şir de litere mari, reprezentând cuvântul magic;
b) pe a doua linie se va scrie un număr natural cu toate cifrele distincte, reprezentând numărul fermecat.
Restricţii şi precizări:
1≤n≤1000; caracterele sunt doar cifre sau litere mici ale alfabetului englez; printre cele n caractere se află întotdeauna cel
puțin o literă şi cel puţin o cifră; pe fiecare copac este scris un singur caracter; mumărul magic începe întotdeauna cu o cifră
diferită de zero.
Exemplu:
magic.in magic.out Explicaţii
6 CB Cel mai mic număr cu cifre distincte ce se
c 2 5 5 b 2 25 poate obţine este 25.
8 CABD Cel mai mic număr cu cifre distincte ce se
c a 5 0 b 2 5 d 205 poate obţine este 205.
Problema 1. Figuri.
Printre toate jucăriile sale, Mihăiță dispune și de figuri geometrice: triunghiuri și pătrate. Mihăiță știe
următoarea informație despre figurile sale:
a) Numărul total de laturi ale tuturor fiigurilot este egal cu L;
b) Triunghiuri sunt cu N mai multe decît pătrate;
De exepmlu, pentru figurile de mai sus avem L=38 și N=1.
Cerinţă: Scrieți un program Pascal care, îl va ajuta pe Mihăiță să determine cîte triunghiuri și cîte pătrate
are, dacă știe valorile L și N.
Date de intrare
De la tastatură se citesc 2 numere naturale L și N, care au respectiv semnificațiile: L-numărul total de laturi ale figurilor și N-
diferența dintre numărul de triunghiuri și numărul de pătrate.
Date de ieşire
La ecran se vor afișa două numere naturale T și P, separate prin spațiu, care reprezintă respectiv numărul de triunghiuri și numărul
de pătrate printre figurile lui Mihăiță.
Restricţii şi precizări:
0≤N<L<2000000000
Problema admite soluții pentru toate testele de evaluare.
Exemplu:
Intrare Ieșire Explicație
38 1 6 5 Printre figuri sunt 6 triunghiuri cu 63=18 laturi și 5 pătrate cu 54=20 laturi. În
total numărul de laturi este cu 18+20=38. Diferența lor: N=6-5=1.
Problema 2. Panglica.
Gigel are o panglică alcătuită din benzi de 1 cm lăţime, colorate în diverse culori. Panglica are N benzi
colorate cu C culori, culori pe care le vom numerota de la 1 la C. Gigel vrea ca la ambele capete ale panglicii
să aibă aceeaşi culoare, dar cum nu poate schimba culorile benzilor, singura posibilitate rămâne tăierea unor
bucăţi de la capete.
Cerinţă: Scrieţi un program care să determine modul de tăiere a panglicii astfel încât la cele două capete să
fie benzi de aceeaşi culoare, iar lungimea panglicii obţinute să fie maximă.
Date de intrare
Fişierul de intrare PANGLICA.IN conţine:
Probleme pentru olimpiada
Problema 3. Litere.
Algorel a primit un joc care conţine n jetoane pe care sunt scrise litere mari ale alfabetului. Fiecare literă are
asociat un cod format dintr-o singură cifră nenulă. Jetoanele se aşează în ordinea dată iniţial, iar prin citirea literelor de
pe acestea, de la primul la ultimul jeton, se formează un cuvânt. Dacă se citesc numerele de pe fiecare jeton, începând
de la primul la ultimul, se obţine un număr k1. Jocul continuă la fel, dar se aşează jetoanele începând de la al doilea la
ultimul, obţinându-se un nou număr k2. Apoi, se aşează jetoanele începând de la al treilea la ultimul, obţinându-se un
nou număr k3, ş.a.m.d. până se ajunge la aşezarea doar a ultimului jeton, caz în care se obţine numărul kn.
Cerinţe:
Scrieţi un program care citeşte numărul n de jetoane, cele n litere asociate jetoanelor, precum şi codurile
asociate literelor, în ordinea apariţiei lor şi afişează:
a) numărul de perechi de litere consecutive din cuvântul iniţial care au proprietatea că o literă este
vocală şi cealaltă este consoană (ordinea lor nu contează);
b) numărul k1, format din aşezarea iniţială a jetoanelor;
c) suma k1+k2+…+kn.
Date de intrare:
Fişierul de intrare litere.in va conţine pe prima linie valoarea lui n, reprezentând numărul de jetoane, pe
a doua linie un cuvânt format din n litere mari (de la ’A’ la ’Z’); literele sunt scrise una după alta, fără să
fie separate cu spaţii, astfel încât prima literă este cea aflată pe primul jeton, a doua literă pe al doilea jeton
ş.a.m.d. Pe a treia linie din fişier se află un număr m ce reprezintă numărul de litere distincte, iar pe a patra
linie m valori reprezentând codurile literelor distincte ce apar în cuvânt. Codurile sunt date în ordinea
apariţiei literelor în cuvânt şi sunt numere naturale nenule formate dintr-o singură cifră, separate printr-un
spaţiu, pentru fiecare literă codul fiind dat o singură dată, chiar dacă litera se repetă.
Date de ieşire:
Fişierul de ieşire litere.out va conţine pe prima linie numărul de perechi de litere consecutive
din cuvânt care au proprietatea că o literă este vocală şi cealaltă consoană (ordinea lor nu contează), pe a doua
linie numărul k1, (format din aşezarea iniţială a jetoanelor), iar pe a treia linie suma k1+k2+…+kn.
Restricţii şi precizări:
- 0 < n ≤ 10000
- 0 < m < 27
Exemple:
Problema 2. Cartea.
Dumitraș a primit în dar o carte în care paginile sunt amestecate. Se hotărî totuși să o citească, răsfoind cartea într-un singur
sens, de la prima pagină către ultima, în ordinea așezării lor în carte, respectînd următorul algoritm:"Caută la început pagina
numerotată cu x=1. După ce a citit o pagină cu numărul x caută printre paginile următoare acestei pagini, răsfoind cartea, pagina
cu numărul x+1, fără a căuta printre paginile așezate înaintea paginii cu numărul x. Dacă o găsește atunci va continua lectura în
același mod, iar dacă nu o găsește atunci va închide cartea și, în ziua următoare, va relua lectura de la pagina cu numărul x+1, pe
care mai întîi o va cauta răsfoind cartea de la început. Dumitraș va proceda la fel și în zilele următoare pînă cînd va citi
întreaga carte". Scrieți un program care citește un număr natural N, reprezentînd numărul paginilor din carte și N numere naturale
distincte x1, x2,…, xn, reprezentînd ordinea în care sunt așezate cele N pagini în carte, și care determină numărul de zile în care
Dumitraș citește cartea.
Input: Fișierul de intrare carte.in conține pe prima linie numărul N al paginilor din carte, iar pe linia următoare N numere întregi
distincte x1, x2, …, xn, separate prin cîte un spațiu, reprezentînd ordinea în care sunt așezate paginile în carte.
Output: Numărul de zile în care Dumitraș va citi cartea se va afișa la ecran.
Restricții și precizări: 0 < N< 1000; paginile cărții sunt numerotate cu numere naturale distincte de la 1 la N; citirea cărții
presupune citirea fiecărei pagini din carte, o singură dată;zilele în care Dumitraș citește cartea sunt numerotate consecutiv,
începînd cu numărul 1;
Exemplu:
carte.in OUTPU Explicație
T
9 4 -în prima zi a citit paginile: 1,2; a doua zi: 3,4,5; a treia zi : 6; a patra zi : 7,8,9
713682495
4 iar prin complementare se înlocuieşte cifra 1 cu 3(=4-1), cifra 2 cu 2(=4-2), cifra 3 cu 1 (=4-3) şi cifra 4 cu 0(=4-
4) rezultând numărul 3210;7 N 10000; 0 K 9;pe fiecare uşă este scris un singur număr natural;
numărul scris pe oricare uşă (din cele N) este mai mare sau egal cu 10 şi mai mic sau egal cu 32800;
Exemplu:
alice.in OUTPUT Explicaţii
7 1 3 Sunt N=7 uşi pe care sunt scrise numerele 1204, 1234, 13, 195, 23, 10,
1204 1234 13 195 23 10 888 888. Cheia primită este inscripţionată cu cifra K=1 şi deschide 3 uşi cu
numerele 1234, 23 şi 10 deoarece numerele magice dintre cele scrise
pe uşi sunt: 1234 (1234321012321012101),
13(13202), 195(195804844), 23(23101), 10(101),
888 (8880). Numărul 1204 nu este un număr magic. Astfel la ecran
se va afișa numărul 3.
Problema 1. Cifru.
Un banchir are un safeu cu cifru. Pentru a nu uita cifrul, vrea să-l scrie pe o foaie, dar codificîndu-l în felul
următor: fiecare cifră să fie înlocuită cu diferenţa dintre cifra 9 si cifra respectivă. Ajutaţi banchirul să codifice cifrul.
Input : Fişierul CIFRU.IN conţine pe un rînd cifrul.
Output: La ecran se va afişa cifrul codificat.
Restricţii: Cifrul este un număr natural ce poate conţine pînă la 10 cifre.
Exemplu:
CIFRU.IN
76809 23190
Problema 2. Smile.
Aurel iubeşte să petreacă mult timp pe reţelele sociale. Odată el a decis să trimită prietenei sale Marcela N
smile-uri. După ce a inserat primul smile, Aurel trebuie să obţină N smile-uri cu ajutorul următoarelor
operaţii:
1. Copie toate smile-urile din mesaj
2. Inserează smile-urile copiate
Ajutaţi-l pe Aurel să trimită N smile-uri cu un număr minim de operaţii.
Input: Un număr întreg N citit de la tastatură
Output: La ecran se va afişa numărul de operaţii
Restricţii: 1≤N≤2000000000; Timp de execuţie <1 sec.
Exemplu:
Intrare: 12
Rezultat: 7
Explicaţie: copy, insert de 3 ori, copy, insert de 2 ori 1+1+1+1=4; 4+4+4=12;
Input: Fişierul de intrare adscad.in conţine pe prima linie numerele întregi N M, separate printr-un
spaţiu, reprezentând valoarea ce trebuie obţinută la evaluarea expresiei şi numărul de cifre din şir. Linia a
doua a fişierului de intrare conţine şirul celor M cifre nenule, separate prin câte un spaţiu.
Output : Fişierul de ieşire adscad.out va conţine expresiile determinate, cite una pe linie, în cazul în care
există soluţie, sau valoarea 0 în cazul în care nu există nici o soluţie.
Restricţii -180 ≤ N ≤ 180; 2 ≤ M ≤ 20
- în şirul citit cifrele se pot repeta
- toate cifrele din şir trebuie să apară şi în expresia aritmetică, în aceeaşi ordine în care au fost citite
- în expresia aritmetică, orice cifră trebuie să fie precedată de un operator; în cazul în care prima cifră este
precedată de operatorul '+' acesta nu se pune în expresie
- în expresia aritmetică nu există spaţii
- expresia aritmetică se termină cu caracterul sfârşit de linie
- în cazul în care soluţia nu este unică se vor afişa toate soluţiile corecte
Exemple
adscad.in adscad.out Explicaţii
21 4 3+9+1+8 Soluţie corectă utilizând numai operatorul '+'
3 9 1 8
-1 4 -1+2+3-5 2 soluții corecte
1 2 3 5 -1-2-3+5
-7 7 -1-1-1-1-1-1-1 Soluţie corectă utilizând numai operatorul '-'
1 1 1 1 1 1 1
12 3 0 Nu există soluţie
1 2 3
Problema 1. Ulcior.
La sărbătoarea lui Neptun – zeul apelor, a fost lansat un concurs care estimează modalități optime de
a transporta apa dintr-un bazin de apă cu capacitatea C litri în alt bazin de aceiași capacitate, inițial fiind gol.
Participanților li se pun la dispoziție a cîte 2 ulcioare: primul cu capacitatea de 3 litri, iar al doilea cu
capacitatea de 5 litri.
CERINŢĂ: Scrieți un program care va determina de cîte ori a fost utilizat ulciorul de 3 litri și ulciorul de 5
litri pentru a transporta toată apa din primul bazin în al doilea bazin într-un timp minim.
INTRARE: Fișierul text ulcior.in conține pe prima linie numărul natural C.
IEȘIRE: Fișierul text ulcior.out conține pe prima linie două numere naturale U3 și U5, separate prin
spațiu, care reprezintă respectiv de cîte ori a fost utilizat ulciorul cu capacitatea de 3 litri și de cîte
ori a fost utilizat ulciorul cu capacitatea de 5 litri pentru a transporta repede toată apa din primul
bazin în al doilea bazin.
DE EXEMPLU:
ulcior.in ulcior.out Explicație
13 1 2 Ulciorul U3 a fost utilizat o dată:13=3 litri
Ulciorul U5 a fost utilizat de 2 ori:25=10 litri
Total:10+3=13 litri
RESTRICȚII:
8≤C≤30000
De fiecare dată ulciorul cu care se va transporta apa va fi plin cu apă.
Problema 2. Zar.
Zarul folosit la diverse jocuri este un cub care are desenat pe fiecare faţă a sa
1,2,3,4,5 sau 6 puncte. Pe un zar nu există două feţe cu acelaşi număr de puncte
şi suma punctelor de pe oricare două feţe opuse este egală cu 7.
Pe o masă de joc este desenat un traseu în formă de pătrat, cu latura de
dimensiune n. Fiecare latură a traseului este împărţită în n pătrăţele identice,
care au latura egală cu cea a zarului. Zarul este aşezat iniţial în colţul din stânga
sus al traseului şi apoi rostogolit de pe o faţă pe alta, din pătrăţel în pătrăţel, de-a
lungul traseului parcurs în sensul acelor de ceasornic.
În orice moment ne-am uita la zar, putem vedea numărul punctelor desenate pe trei din feţele sale (aşa cum se vede în
desenul de mai sus).
Probleme pentru olimpiada
Notăm cu f1 faţa cubului orientată spre noi, f2 faţa superioară a cubului, respectiv cu f3 faţa laterală din dreapta.
Pentru exemplul din figură: n=4, faţa dinspre noi (f1) conţine trei puncte, faţa superioară (f2) conţine două
puncte, faţa laterală din dreapta (f3) conţine un punct, iar sensul de deplasare este cel precizat prin săgeţi.
Cerinţă
Cunoscând dimensiunea n a traseului şi numărul punctelor de pe cele trei feţe ale zarului în poziţia iniţială, determinaţi
după k rostogoliri numărul punctelor ce se pot observa pe fiecare din cele trei feţe ale zarului.
Date de intrare
Fişierul zar.in conţine:
- pe prima linie numerele naturale n şi k despărţite print-un spaţiu.
- pe linia a doua trei numere naturale separate printr-un spaţiu ce corespund numărului de puncte de pe feţele f1, f2,
respectiv f3 ale zarului în poziţia iniţială.
Date de ieşire
Fişierul zar.out va conţine o singură linie cu trei numere naturale separate prin câte un spaţiu, care reprezintă numărul
punctelor ce se pot observa pe feţele f1, f2 şi f3 (în această ordine) după ce au fost efectuate k rostogoliri pe traseul
dat.
Restricţii şi precizări
2≤n≤20000, 1≤k≤1000000
Exemplu
zar.in zar.out Explicaţie
4 11 1 5 3 Fiecare latură a traseului este formată din 4 căsuţe şi se vor
3 2 1 efectua 11 rostogoliri. După prima rostogolire spre dreapta,
valorile celor trei feţe (f1, f2, respectiv f3) ale zarului vor fi
3, 6 şi 2. După a doua rostogolire obţinem numerele 3, 5, 6, iar
după a treia rostogolire valorile feţelor vor fi 3, 1 şi 5. În
acest moment zarul a parcurs o latură a traseului. Următoarele
trei rostogoliri se vor efectua în jos, de-a lungul traseului iar
feţele vor avea succesiv valorile 1, 4, 5 apoi 4, 6, 5 şi 6, 3, 5.
Urmează rostogolirile spre stânga, pe feţele zarului vom observa
valorile 6, 5, 4 apoi 6, 4, 2 şi respectiv 6, 2, 3. Ultimele două
rostogoliri se vor efectua în sus de-a lungul laturii din stânga a
traseului. După penultima rostogolire obţinem 5, 6, 3, iar după
ultima rostogolire valorile feţelor vor fi 1, 5 şi 3.
Problema 3. Cuvinte.
Se consideră un şir de cuvinte separate două câte două printr-un spaţiu. Fiecare cuvânt este caracterizat prin
numărul de ordine care reprezintă poziţia lui în şirul de cuvinte (primul cuvânt are numărul de ordine 1). Unui cuvânt i
se pot aplica în mod repetat următoarele transformări: primul caracter al cuvântului (cel mai din stânga) se şterge de
acolo şi se adaugă după ultimul caracter din cuvânt. Astfel, dintr-un cuvânt s cu k caractere se pot obţine alte k-1
cuvinte pe care le numim cuvinte obţinute din transformarea cuvântului s. De exemplu, dintr-un cuvânt format din 4
caractere c1c2c3c4, cuvintele obţinute prin transformarea lui sunt: c2c3c4c1, c3c4c1c2, c4c1c2c3.
Se caută în şirul de cuvinte prima pereche de cuvinte vecine (a,b), în care al doilea cuvânt din pereche (cuvântul
b) este identic cu un cuvânt obţinut din transformarea lui a. Dacă există o astfel de pereche, se şterge cuvântul b din
şir. Prin ştergerea cuvântului b din şir, acesta va avea mai puţin cu un cuvânt! Se repetă operaţia de căutare de mai sus
până când în şirul rămas nu mai există o pereche (a,b) de cuvinte vecine, astfel încât b să fie obţinut prin
transformarea lui a.Se ştie că pe parcursul modificărilor, cuvintele nu-şi schimbă numerele de ordine pe care le-au
avut iniţial.
Cerinţă: Scrieţi un program care să citească şirul de cuvinte şi să afişeze:
a) numărul de ordine al primului cuvânt şters sau valoarea 0 în cazul în care nu se şterge niciun cuvânt
b) numerele de ordine ale cuvintelor rămase după finalizarea operaţiilor de modificare.
Date de intrare
Fişierul cuvant.in conţine o singură linie pe care se află şirul de cuvinte separate două câte două
printr-un spaţiu.
Date de ieşire
Fişierul cuvant.out va conţine:
- pe prima linie numărul de ordine al primului cuvânt şters sau valoarea 0 în cazul în care nu se şterge niciun cuvânt
- pe a doua linie numerele de ordine ale cuvintelor rămase în final în şirul de cuvinte, despărţite două câte două printr-
un spaţiu.
Restricţii şi precizări
Probleme pentru olimpiada
După ultimul cuvânt din şirul iniţial există caracterul !; fiecare cuvânt are maxim 10 caractere, iar în şirul iniţial nu există mai mult
de 25 cuvinte; șirul de cuvinte iniţial este format din cel puţin un cuvânt, o pereche de cuvinte vecine (a,b), din şirul de cuvinte
este caracterizată prin faptul că, după cuvântul a se afla imediat cuvântul b.
Exemplu