Documente Academic
Documente Profesional
Documente Cultură
23 iunie 2001
clasele V - VI
Ştampile
Pe fiecare din porţile celor n (n <= 100) case dintr-un sat se scrie câte un număr, prin aplicarea unor ştampile
cu numere. Exemplu: pentru a scrie numărul 3404 se vor aplica ştampilele cu 3 şi cu 0, câte o dată şi cea cu
4 de două ori.
Se citesc n numere naturale (cele ce se scriu pe porţi) şi se cer următoarele:
Impresarul unei formaţii de muzică trebuie să primească oferte de spectacole şi eventual anulări de
spectacole din diferite oraşe. Oraşele sunt codificate prin numerele 1,2,..,n (1n20) şi fiecare oraş poate
organiza cel mult un spectacol. Impresarul ţine legătura cu organizatorii de spectacole din aceste oraşe şi
actualizează în permanenţă datele obţinute. Prin fax el primeşte m (m<= 100) mesaje, care pot fi de unul din
cele două tipuri:
D
nr
sau
N
nr
Cu semnificaţiile: pentru primul mesaj se doreşte organizarea unui concert în oraşul nr, iar pentru a-l doilea
mesaj se doreşte anularea spectacolului din oraşul nr. Un mesaj este format din exact două linii.
Se cere:
a) Să se afişeze oraşele în care va concerta formaţia de muzică (pe aceeaşi linie cu un spaţiu între ele).
b) Să se afişeze oraşul (sau oraşele dacă sunt mai multe, pe aceeaşi linie cu un spaţiu între ele) în care
organizatorii sunt cei mai nedecişi (adică au anulat şi propus oraganizarea de spectacol în oraşul lor de
cele mai multe ori).
c) Să se afişeze numărul de oraşe care nu au trimis nici un mesaj impresarului.
Exemplu:
Pentru datele de intrare:
n=5
m=6
D
2
D
3
N
3
D
3
D
5
N
2
Se va afişa:
a)
35
b)
3
c)
2
Observa ie:
Se cere respectarea formatul de citire şi afişare a datelor precizat în exemplu.
Timp maxim de executare: 3 secunde/test
OLIMPIADA NA IONAL DE INFORMATIC PENTRU GIMNAZIU
23 iunie 2001
clasele VII - VIII
Viespi
Pe o insulă, după multiple experimente chimice se produce un fenomen extrem de periculos. Viespile se
înmulţesc foarte repede producând pagube mari. Guvernatorul ia hotărârea ca după n zile să se evacueze
insula. Se cere să se determine numărul de viespi existente în ziua de plecare, ştiind că în prima zi după
fenomen sunt p viespi, în a doua zi q viespi, iar în zilele cu numărul de ordine k (3kn) numărul de viespi
este egal cu de patru ori numărul de viespi din ziua k-1, minus numărul de viespi din ziua a k-2. .
Date de intrare:
|n fişierul text VIESPI.IN se află pe prima linie n, iar pe a doua linie p şi q cu un spaţiu între ele.
Date de ieşire:
|n fişierul text VIESPI.OUT se va scrie pe prima linie numărul de viespi după cele n zile.
Restric ie
1n,p,q100
Exemplu:
VIESPI.IN
4
23
VIESPI.OUT
37
Problema 1 – La şcoală
Directorul unei şcoli doreşte să premieze la sfârşitul anului şcolar pe cei mai buni elevi la învăţătură.
Pentru acest lucru el are de rezolvat două probleme:
1. Să determine câţi elevi vor fi premiaţi dintre cei n (2n700) elevi ai şcolii. După discuţii aprinse cu
ceilalţi profesori se hotărăşte în Consiliul Profesoral ca numărul premianţilor să fie n-k, unde k este cel
mai mare număr pătrat perfect mai mic strict decât n. De exemplu, pentru n=150, k este 144 (pentru că
144=122), deci vor fi premiaţi 150-144=6 elevi.
2. Pentru a fi cât mai multă linişte la premiere, în Consiliul Profesoral se ia decizia ca elevii care nu vor fi
premiaţi să fie aşezaţi pe terenul de sport pe rânduri de câte p elevi (unde p2=k). În acest scop, directorul
a numerotat elevii nepremiaţi de la 1 la k şi a hotărât ca elevii să fie aşezaţi în ordinea descrescătoare a
numerelor asociate.
Cerinţă
Scrieţi un program care:
– citeşte de la tastatură n, numărul de elevi din şcoală;
– determină şi afişează pe ecran numărul de elevi premiaţi;
– afişează pe ecran modul de aşezare a elevilor nepremiaţi
Exemplu
Un exemplu de execuţie a programului creat de voi ar putea fi:
Introduceţi numărul de elevi din scoala n = 35
Numarul de elevi premiati: 10
Elevii nepremiati:
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11
10 9 8 7 6
5 4 3 2 1
Problema 2 – Balaur
A fost o dată un balaur cu 6 capete. Într-o zi Făt-Frumos s-a supărat şi i-a tăiat un cap. Peste noapte i-au
crescut alte 6 capete în loc. Pe acelaşi gât! A doua zi, Făt-Frumos iar i-a tăiat un cap, dar peste noapte
balaurului i-au crescut în loc alte 6 capete ... şi tot aşa timp de n zile. În cea de a (n+1)-a zi, Făt-Frumos s-a
plictisit şi a plecat acasă!
Cerinţă
Scrieţi un program care citeşte de la tastatură n, numărul de zile, şi care afişează pe ecran câte capete avea
balaurul după n zile.
Exemplu
Pentru n=3, programul va afişa:
Dupa 3 zile balaurul are 15 capete.
Explicaţie:
Iniţial balaurul avea 6 capete. În prima zi Făt-Frumos i-a tăiat un cap şi i-au rămas 5.
Peste noapte i-au crescut alte 6, deci a doua zi dimineaţa balaurul avea 11 capete. În cea de a doua zi Făt-
Frumos îi mai taie balaurului un cap, deci balaurul rămâne cu 10 capete. Peste noapte îi mai cresc 6, astfel că
a treia zi dimineaţă balaurul avea 16 capete. Dar în cea de a treia zi Făt-Frumos îi mai taie balaurului un cap,
deci după cea de a treia zi balaurul a rămas cu 15 capete.
Notă:
Timp de lucru: 3 ore. Fiecare problemă se punctează cu 100 puncte.
Olimpiada Naţională de Informatică pentru Gimnaziu
Clasa a VI-a
Problema 1 – Valori-pantă
Exemplu
Dacă programul vostru va citi de la tastatură N=6 şi vectorul cu elementele: 126, 9621, 1212, 3678,
9231, 9621, programul va afişa:
Numarul de valori-panta: 4
Cea mai mare valoare-panta: 9621 pe pozitiile: 2 6
Cea mai mica valoare-panta: 126 pe pozitiile: 1
Observaţie
Dacă la punctul a) sunt 0 valori-pantă, atunci la b) se va afişa mesajul NU EXISTA.
Problema 2 –Cuburi
Fratele cel mic al lui Gigel primise de la Moş Crăciun un joc de cuburi colorate. Gigel tocmai terminase
clasa a V-a şi nu se mai juca cu aşa ceva, dar când nu se uitau ceilalţi parcă l-ar fi însoţit pe cel mic la joc,
mai ales când acesta înşira cele n cuburi unul după altul, iar lui îi treceau prin cap tot felul de cerinţe pe care
proful său de info le-ar fi putut scorni:
a. să vedem câte culori sunt în total;
b. care culoare este folosită pentru cele mai multe cuburi;
c. ce cub ar trebui scos din şir astfel încât să se formeze din cuburile rămase un şir cât mai lung de cuburi
alăturate de aceeaşi culoare.
Cerinţă
Se citesc de la tastatură n, numărul de cuburi, şi apoi, de pe aceeaşi linie, o succesiune de n numere de culori,
separate prin spaţii. Culorile sunt numerotate începând cu 1. Se cere să se afişeze pe ecran câte un răspuns pe
o câte o linie nouă pentru fiecare cerinţă.
Precizări
1. Dacă la cerinţele b, c sunt mai multe soluţii se vor preciza toate.
2. N este numar natural mai mic decât 50, iar culorile sunt în număr de maximum 10, numerotate de la 1
la 10.
Exemplu
Notă:
Timp de lucru: 3 ore
Fiecare problemă se punctează cu 100 puncte.
Olimpiada Naţională de Informatică pentru Gimnaziu
Clasa a VII-a
Problema 1 – 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:
– pe prima linie numerele naturale N şi C separate printr-un spaţiu;
– pe următoarele N linii descrierea panglicii: pe fiecare linie un număr natural de la 1 la C,
reprezentând în ordine culorile fâşiilor ce alcătuiesc panglica.
Date de ieşire
Fişierul de ieşire PANGLICA.OUT va conţine următoarele 4 numere:
– pe prima linie numărul de fâşii rămase;
– pe linia a doua numărul culorii care se află la capete;
– pe linia a treia câte fâşii trebuie tăiate de la începutul panglicii iniţiale;
– pe linia a patra câte fâşii trebuie tăiate de la sfârşitul panglicii iniţiale.
Restricţii şi precizări
2N10000
1C200
Dacă există mai multe soluţii alegeţi pe cea în care se taie cât mai puţin din partea de început a
panglicii.
Exemplul 1 Exemplul 2
PANGLICA.IN PANGLICA.OUT PANGLICA.IN PANGLICA.OUT
6 3 4 5 2 4
1 2 1 2
2 1 2 1
1 1 1 0
3 2
2 2
3
Doi prieteni au inventat un nou joc – « jocul pietricelelor ». Ei au la dispoziţie N grămezi, fiecare
dintre ele conţinând un număr distinct de pietricele.
Jocul constă în alegerea unui număr oarecare de grămezi din cele N date, pentru a obţine în total
(adunând numărul de pietricele din grămezile selectate) un număr de pietricele cu 1 mai mare decât
ultimul număr obţinut de partenerul de joc. Primul jucător trebuie să obţină la prima sa mutare un
total de 1 pietricică. Deci, obligatoriu al doilea jucător trebuie să obţină la prima sa mutare un total
de 2 pietricele. La a doua mutare, primul jucator este obligat sa obţină un total de 3 pietricele,
ş.a.m.d.
Câştigă cel care a obţinut totalul maxim, sau, altfel spus, pierde cel care nu reuşeşte să obţină la
rândul său un total cu exact o pietricica mai mare decât ultimul total obţinut de partenerul de joc.
Cerinţă
Scrieţi un program care determină numărul de pietricele obţinut la ultima sa mutare de jucătorul
câştigător.
Date de intrare
Fişierul de intrare JOC.IN conţine:
– pe prima linie numărul N de grămezi;
– pe a doua linie N numere ordonate crescător, reprezentând numărul de pietricele din fiecare
grămadă.
Date de iesire
Fişierul de ieşire JOC.OUT va conţine pe prima linie numărul determinat. Dacă jocul nu poate
începe, fiindcă lipseşte grămada care conţine o pietricică, în fişier se va afişa valoarea 0.
Restricţii
Toate numerele care intervin în problemă sunt mai mici decât 60000.
Exemplu
JOC.IN JOC.OUT
7 7
1 2 4 9 10 11 12
Explicatie:
Notam PJ primul jucător şi DJ al doilea jucător.
PJ are la dispoziţie o grămadă cu o pietricică: 1
DJ are la dispoziţie o grămadă ce conţine două pietricele: 2
PJ alege primele două grămezi: 1+2=3
DJ are la dispoziţie o grămadă ce conţine 4 pietricele: 4
PJ alege prima şi a trei grămadă: 1+4=5
DJ alege a doua şi a treia grămadă: 2+4=6
PJ alege primele trei grămezi: 1+2+4=7
Jocul ia sfârşit deoarece al doilea jucător nu poate obţine o grămadă ce conţine 8 pietricele.
Notă:
Timp de lucru: 3 ore. Fiecare problemă se punctează cu 100 puncte.
Clasa a V-a
Problema 1 (100 puncte)
Exponent
Cerinţă
Date de intrare
De la tastatură se citesc n şi k.
Date de ieşire
Pe ecran se va afişa un singur număr natural, adică exponentul cerut de problemă.
Restricţii
n≤100
Exemplu
Pentru
n=6
k=3
se va afişa
2
Observaţie
Se va afişa 2 pentru că 1·2·3·...·6=24·32·5 şi deci 3 are exponetul 2 în descompunerea în
factori primi.
Pinochio
În fiecare zi nelucrătoare din săptămână, Pinochio spune câte o minciună datorită
căreia nasul acestuia creşte cu câte p centimetri pe zi. Sâmbăta şi duminica, când vine bunicul
Gepeto acasă, pentru a nu-l supăra prea tare, Pinochio reuşeşte să nu spună nici o minciună,
ba chiar uitându-se în oglindă observă că în fiecare din aceste zile lungimea nasului său scade
cu cate 1 centimetru pe zi. Când începe o nouă săptămână, rămânâd singur acasă Pinochio
continuă şirul minciunilor.
Cerinţă
Care este dimensiunea nasului lui Pinochio după k zile ştiind că iniţial nasul său
măsura n centimetri.
Date de intrare
De la tastatură se citesc n, p şi k.
Date de ieşire
Pe ecran se va afişa un singur număr natural, adică numărul de centimetri cerut de problemă.
Restricţii
1≤n≤1000, 1≤k≤256, 1≤p≤100
Exemplu
Pentru
n=2
p=1
k=8
se va afişa
6 cm
Observaţie
Pentru orice exemplu zilele încep cu luni. Pe exemplul anterior zilele sunt luni, marţi,
miercuri, joi, vineri, sâmbătă, duminică, luni.
Visul
Sinbad Marinarul visează că se află într-o peşteră cu comori. Peste tot se aflau cufere
pline cu bijuterii şi monezi din aur, iar peştera era luminată de strălucirea lor. Şi în timp ce
Sinbad se minuna de toate splendorile din jurul său, se auzi o voce misterioasă, care spuse:
“Există o posibilitate de a ajunge aici şi dacă reuşeşti toate aceste comori vor fi ale
tale. Această pesteră se află în vârful muntelui Ararat,dar pe drum, duhurile rele vor încerca să
te oprească. Tu trebuie sa lupti cu ele şi să le învingi în luptă dreaptă. Pentru a deschide
peştera, trebuie sa–ţi aminteşti câte duhuri ai învins şi să rosteşti cu voce tare formula magică.
Formula magică este cel mai mic număr, care are atât prima cifră cât şi numărul de cifre,
egale cu numărul duhurilor rele învinse de tine. Dar atentie! Acest număr, trebuie în plus să
aibă proprietatea că orice secvenţă de două cifre consecutive trebuie să fie numere prime
diferite.”
În acest moment, Sinbad s-a trezit şi vrea să plece în căutarea comorii. Nu se teme de
duhurile rele, dar ştie câte calcule necesită căutarea formulei magice (şi mai ştie că la
matematica nu se descurcă foarte bine). De aceea, vă roagă să-l ajutaţi.
Cerinţă
Simbat vă va spune numărul n (reprezentând numărul duhurilor rele învinse de el), iar tu
trebuie să-i spui formula magică. În cazul în care nu există un astfel de număr, spuneţi-i lui
Sinbad că a fost doar un vis şi că e timpul să se pregătească pentru şcoală.
Date de intrare
De la tastatură se citeşte n.
Date de ieşire
Pe ecran se va afişa un singur număr natural, adică cel cerut de problemă. Dacă nu există
soluţie se va afişa mesajul Nu exista
Restricţii
n≤10
Exemplu
Pentru
n=3
se va afişa
311
Observaţie
În exemplu se afişează 311 pentru că: 31 este număr prim, 11 este număr prim.
Gardul
Doi copii vopsesc un gard alcătuit din n scânduri pe care le vom numerota de la 1 la n astfel: primul
ia o cutie de vopsea roşie cu care vopseşte scândurile cu numărul p, 2p, 3p, etc. Al doilea procedează la
fel, începe de la acelaşi capăt al gardului, dar ia o cutie de vopsea albastră şi vopseşte din q în q
scânduri. Astfel, când vor termina de vopsit, gardul va avea multe scânduri nevopsite, unele scânduri
vopsite în roşu, altele în albastru, iar altele în violet (cele care au fost vopsite şi cu roşu şi cu albastru).
Cerinţă
Cunoscând numerele n, p şi q afişaţi :
a) câte scânduri rămân nevopsite
b) câte scânduri sunt vopsite în roşu
c) câte scânduri sunt vopsite în albastru
d) câte scânduri sunt vopsite în violet.
Date de intrare
De la tastatură se citesc n, p şi q.
Date de ieşire
Pe ecran se vor afişa cele patru numere naturale, câte unul pe un rând ca în exemplu.
Restricţii
n≤100000
Exemplu
Pentru
n=25
p=4
q=6
se va afişa :
a)17
b) 4
c) 2
d) 2
Observaţie
Exemplul corespunde situaţiei următoare :
. . . R . A . R . . . V . . . R . A . R . . . V .
A-albastru
R-roşu
V-violet
Cerinţe
Date de intrare
Datele de intrare se citesc de la tastatură.
Date de ieşire
Datele de ieşire se afişează pe ecran. Răspunsul la fiecare subpunct va fi precedat de a),
respectiv b) (vezi exemplul).
Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemplu
Pentru datele de intrare:
a=2115
b=29025
se va afişa:
a) 2 5
b) 955222110
La un concurs de matematică participă elevi din mai multe şcoli din diferite oraşe. Pentru a se
putea deosebi între ele lucrările lor, fiecare lucrare este codificată printr-un număr natural cu 3 cifre,
să zicem abc, unde a (cifra sutelor) este codul oraşului, b (cifra zecilor) este codul şcolii din oraşul a,
iar c (cifra unităţilor) este codul unui elev din şcoala b din oraşul a. Exemplu: lucrarea cu codul 328
este lucrarea elevului cu codul 8 de la şcoala cu codul 2 din oraşul cu codul 3.
Se cunosc: un cod (al lucrării unui elev H, prietenul nostru), numărul n de lucrări premiate şi
codurile acestora.
Cerinţă
Se cere să se rezolve cerinţele:
a) Verificaţi dacă H este premiant, sau nu.
b) Determinaţi numărul de premii luate de elevii din oraşul lui H (inclusiv H, dacă a fost premiat).
c) Determinaţi numărul de premii luate de elevii din şcoala lui H (inclusiv H, dacă a fost premiat).
Date de intrare
De la tastatură se citesc: codul lui H, n, cele n coduri premiate.
Date de ieşire
Cele 3 răspunsuri se vor afişa pe ecran, pe câte un rând. Pentru prima cerinţă se va afişa un
mesaj (DA, sau NU), după cum H a luat, sau nu a luat premiu. La cerinţele b) şi c) se va scrie câte un
număr. Fiecare răspuns va fi precedat de o literă (a, b, sau c), pentru a se preciza la ce cerinţă s-a
răspuns.
Restricţii
n este un număr natural nenul; n<20.
Codul de oraş (cifra sutelor din fiecare cod) este de la 1 la 5, inclusiv. Codurile şcolilor din fiecare
oraş (cifra zecilor) este de la 0 la 9, inclusiv, iar codul elevilor (cifra unităţilor) este tot de la 0 la 9
inclusiv.
Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemplu
Pentru codul lui H: 234, numărul n=6 şi cele 6 coduri ale lucrărilor premiate: 123, 232, 125,
222, 421 şi 235, se vor da răspunsurile:
a) NU
b) 3
c) 2
Explicaţie
a) codul lui H nu se regăseşte printre cele citite (premiate), deci mesajul este NU
b) lucrările premiate din orasul lui H (cu cifra sutelor egală cu 2) sunt în număr de 3: 232, 222 şi 225
c) lucrările premiate din şcoala lui H (cu cifra sutelor egală cu 2 şi cu cifra zecilor egală cu 3) sunt în
număr de 2: 232 şi 235.
Cerinţă
Citind greutăţile cutiilor, să se determine „numărul de control” şi să se verifice dacă
este număr prim.
Date de intrare
Se citeşte de la tastatură numărul n urmat de greutăţile cutiilor.
Date de ieşire
Se va scrie pe ecran „numărul de control”, urmat de valoarea 0 sau 1 pe linia
următoare. Pe următoarea linie se va afişa 1 dacă numărul este prim, respectiv 0 în caz
contrar.
Atenţie: Se vor afişa doar două valori, fără mesaje, pe două linii diferite!!!
Restricţii
1 n 100
Fiecare greutate este un număr natural, mai mic sau egal cu 200
Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemplu
Date de intrare
n=21
1 3 2 6 2 6 2 8 9 8 8 9 10 8 11 18 11 12 14 15 17
Date de ieşire
31
1
Explicaţie
După ordonare se obţine şirul: 1 2 2 2 3 6 6 8 8 8 8 9 9 10 11 11 12 14 15 17 18
Se obţine apoi: 1 3 1 2 4 2 1 2 1 1 1 1 1
1 1 0 1
Din valorile 1 1 0 1 se obţine numărul de control 31, care este număr prim.
Timp maxim de executare: 1 secundă/test
Olimpiada Judeţeană de Informatică
Februarie 2004
Clasa a VI-a
Vânătorul şef al regelui Arthur a primit însărcinare să vâneze primele raţe ce se întorc
din ţările calde. Regele fiind un tip cu idei fixe, i-a cerut vânătorului să vâneze raţele albe cu
săgeţi albe, iar raţele negre cu săgeţi negre.
Raţele vin în rânduri (stoluri) din ce în ce mai mari: mai întâi una, apoi două, trei,
cinci, opt, treisprezece, ş.a.m.d. Se observă că numărul de raţe dintr-un rând este egal cu
numărul de raţe de pe cele două rânduri anterioare. Raţele fiind nişte creaturi ordonate zboară
în rânduri, în care nu vei putea găsi două raţe de aceeaşi culoare alăturate, fiecare rând
începând cu o raţă albă.
Vânătorul ştie că dacă a început să doboare o raţă, trebuie să le doboare pe toate de
pe rândul acesteia, deoarece supravieţuitoarele vor alerta celelalte raţe şi ele nu se vor mai
întoarce niciodată, iar vânătorul nostru îşi va pierde slujba.
Cerinţă
Ştiind că vânătorul a primit ka săgeţi albe şi kb săgeţi negre, trebuie să determinaţi
câte rânduri de raţe a doborât şi câte săgeţi de fiecare tip i-au rămas, ştiind că el vrea să-şi
păstreze slujba.
Date de intrare
Se citesc de la tastatură numerele ka şi kb (în această ordine).
Atenţie: Valorile se introduc obligatoriu în această ordine!
Date de ieşire
Se va afişa pe ecran:
- numărul de rânduri doborâte
- numărul de săgeţi albe rămase
- numărul de săgeţi negre rămase.
Restricţii
0≤ka, kb≤2.000.000.000
Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemplu
Pentru ka=9 şi kb=10
Se va afişa:
4
2
6
Explicaţie
Pentru exemplu avem rândurile (A- raţă albă, N- raţă neagră) de raţe:
A
A N
A N A
A N A N A
Cerinţă
Scrieţi un program care să construiască vectorul y cu elemente din mulţimea {1, 2, …, n}
astfel încât oricare ar fi numerele naturale i, j cu proprietatea că 1≤i ≤n, 1 ≤j ≤ n şi x[i]<x[j] să
avem y[i]<y[j].
Date de intrare
Fişierul siruri.in va conţine:
- pe prima linie numărul n
- linia a doua componentele vectorului x separate printr-un spaţiu.
Date de iesire
Fisierul siruri.out va conţine pe prima linie componentele vectorului y separate printr-un spaţiu.
Restrictii
1≤n ≤ 100
Componentele vectorului x sunt numere naturale cel mult egale cu 32 000.
Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemplu
Siruri.in Siruri.out
6 5 2 3 6 4 1
12 3 7 16 10 1
Dornic de o condiţie fizică perfectă, un viitor olimpic naţional la informatică îşi propune să
escaladeze cea mai înaltă culme a unui un masiv muntos. Se echipează corespunzator, îşi cumpără un termos,
îl umple cu apa, culege informaţiile despre traseele existente şi completează astfel fişierul de intrare
popas.in. Pe parcursul fiecărui traseu există mai multe izvoare de la care drumeţul îşi poate umple termosul.
Ştiind că pe munte este bine să mergi cu pas constant şi fără ruperi de ritm, îşi propune să atingă culmea
facând cât mai puţine popasuri (pentru umplerea termosului).
Date de intrare
Fişierul popas.in conţine:
- pe prima linie, k- numărul total de trasee către culme
- pe fiecare dintre următoarele k linii descrierea câte unui traseu (pe fiecare linie numerele sunt
separate prin câte un spaţiu), adică:
- i - numărul asociat traseului (fiecare traseu este identificat în mod unic printr-un număr
natural cuprins între 1 şi k)
- r - numărul izvoarelor cu apă rece de pe traseu
- d1,d2,…,dr – r numere reprezentând distanţa de la punctul de plecare până la fiecare izvor
- pe ultimele două linii:
- t distanţa pentru care drumeţului îi este suficientă apa din termos
- u distanţa pe care drumeţul o poate străbate fără apă
Cerinţă
Dintre toate traseele existente către culme determinaţi-l pe cel pentru care numărul total de
popasuri este minim. Dacă sunt mai multe astfel de trasee, se va alege cel care este scris ultimul în fişierul
de intrare.
Date de iesire
Fişierul popas.out va conţine pe aceeasi linie, despărţite prin spaţiu, două numere: primul reprezintă
numărul minim de popasuri necesare deplasarii şi al doilea numărul traseului ales. Dacă problema nu are
soluţie fişierul de ieşire va conţine cifra 0.
Observaţii
În fişierul de intrare toate distanţele sunt exprimate în kilometri
Pentru fiecare traseu distanţa dintre ultimul izvor (cel mai îndepărtat de punctul de plecare) şi culme este
de 1 kilometru.
Restrictii
0<k<=100; 0<r<=20; 0<di<=360; 1<=t<=10; 1<=u<=5
Datele de intrare sunt corecte (nu necesită validare).
Exemple
popas.in popas.out
3 1 1
2 3 12 5 9
1 4 2 9 7 11
3 5 2 16 7 9 8
6
2
popas.in popas.out
2 0
1 3 12 5 9
2 3 2 7 11
1
2
Lidorienii şi senopictii sunt în conflict pentru ronul fermecat 1, fiind arbitraţi de orintieni,
aleşi de părţile beligerante drept judecători. Orintia a propus: „Ronul fermecat va fi ascuns printre
alţi k roni cu acelaşi aspect, dar toţi realizaţi dintr-un material mai greu decât originalul, având
masa, standard, diferită de cea a ronului femecat. Pentru a-l descoperi, vă gandiţi că aveţi la
dispoziţie o balanţă şi toţi cei k+1 roni. Lidorienii, apoi senopictii vor spune un singur număr,
reprezentând numărul maxim de cântăriri admis2 pentru descoperirea ronului fermecat.
Dacă nici una dintre părţi nu spune numărul corect, atunci ronul fermecat va rămâne în
Orintia. Dacă ambele părţi spun numărul corect, ronul va rămâne tot la orintieni.”.
Cerinţă
Sarcina voastră este să indicaţi ţara care câştigă ronul fermecat: Lidoria -L, Senopictia –S, Orintia
–O.
Date de intrare
Fisierul ron.in are pe prima linie numărul k, iar pe linia a doua două numere RL, respectiv RS
separate printr-un spaţiu. RL reprezintă răspunsul lidorienilor, iar RS răspunsul senopictilor.
Date de ieşire
Fisierul ron.out contine una din literele L, S şi O.
Restricţii
1 < k < 10000
RL, RL sunt numere naturale cel mult egale cu k
Exemple
ron.in ron.out Explicaţie: maximul admis este 2, deci
7 O ronul fermecat rămâne în Orintia
1 3
ron.in ron.out Explicaţie: maximul admis este 2, dar
4 O fiind egalitate, ronul rămâne în Orintia
2 2
1
cuboid gravat cu semnele fixe ale puterii
2
numărul acesta nu se obţine cântărind un ron de mai multe ori şi nici cântărind de cât mai multe ori ronii;
cântărirea presupune să existe, pe fiecare braţ al balanţei, un număr egal de roni (1-1, 2-2, etc.)
Ministerul Educaţiei şi Cercetării
Olimpiada de Informatică Clasa a V-a
Faza judeţeană, 26-27 februarie 2005
Cerinţă
Scrieţi un program care să determine elementele intersecţiei celor n mulţimi.
Date de intrare
De la tastatură se citeşte numărul n. Apoi perechi de numere, câte una pe un rând, separate prin câte un
spaţiu, care reprezintă cel mai mic, respectiv cel mai mare element din fiecare mulţime.
Date de ieşire
Pe ecran se va afişa pe prima linie elementele intersecţiei cu câte un spaţiu între ele.
Restricţii şi precizări
0 < n < 31
Elementele mulţimilor sunt numere naturale < 41.
Exemplu
Date de intrare Date de ieşire Explicaţie
n=3 5 6 7 8 9 Avem mulţimile
5 10 {5,6,7,8,9,10}
4 11 {4,5,6,7,8,9,10,11}
2 9 {2,3,4,5,6,7,8,9}
şi intersecţia:
{5,6,7,8,9}
s = 1+ 22 + 33 + … + nn.
Cerinţă
Scrieţi un program care să afişeze ultima cifră a lui s.
Date de intrare
Date de ieşire
Restricţii şi precizări
0 < n < 101
Exemplu
Date de intrare Date de ieşire Explicaţie
n=3 2 Suma este 32 şi ultima cifră 2.
Cerinţă:
Se cere să se determine numărul minim de robinete cu care trebuie să fie prevăzut havuzul astfel
încât nici un spiriduş, în nici un moment, să nu fie nevoit să aştepte pentru a-şi putea umple vasul cu apă.
Date de intrare:
Din fişierul elfi.in se citesc:
- n numărul de spiriduşi, de pe primul rând
- n perechi de forma ci pi reprezentând numărul de secunde de la havuz la rondul propriu şi respectiv
numărul de secunde necesar pentru parcurgerea rondului propriu, de pe următoarele n linii ale fişierului
Date de ieşire:
În fişierul elfi.out se scrie un singur număr reprezentând numărul minim de robinete necesare
Restrictii:
1<n<5001
0<ci<101
0<pi<101
Exemplu:
elfi.in elfi.out Explicaţie
5 4 Primul, al treilea, al patrulea şi al cincilea spiriduş
7 4 se întâlnesc simultan la havuz la ora 7 :12 :59 şi-şi
7 8 umplu vasele până la ora 7 :13 :00
4 5
7 6
2 15
Exemplu
muzica.in muzica.out Explicaţie
164 824 19902912621359223300970873786407766 34 1 este tema
99029126213... este refrenul
13 32 406250 1 40625 este tema
0 este refrenul
6 11 54 2 nu există temă
54
Date de intrare
De la tastatură se citesc n, numărul de case şi apoi n numere naturale de 3 cifre,
care reprezintă numerele caselor.
Date de ieşire
Pe primul rând de ecran se va afişa numărul total al sătenilor.
Pe al doilea rând al ecranului se va afişa numărul minim de membrii ai unei case.
Pe al treilea rând al ecranului se va afişa numărul familiilor cu număr minim de
membri.
Restricţii şi precizări
- numărul de case este mai mic decât 100
- în fiecare casă există cel puţin un bărbat şi cel puţin o femeie.
Exemplu
Date de Explicaţie Date de ieşire
intrare
6 6 case 48
232 casa 1 : 2 bărbaţi, 3 femei, 2 copii 7
215 casa 2 : 2 bărbaţi, 1 femei, 5 copii 3
340 casa 3 : 3 bărbaţi, 4 femei, 0 copii
325 casa 4 : 3 bărbaţi, 2 femei, 5 copii
450 casa 5 : 4 bărbaţi, 5 femei, 0 copii
124 casa 6 : 1 bărbaţi, 2 femei, 4 copii
Numărul total al sătenilor : 48
Numărul minim de membrii : 7
Numărul de familii cu număr minim : 3 (familiile din
casele 1, 3 şi 6)
Date de ieşire:
Se vor afişa pe ecran
- pe primul rând, cel mai mare număr de obiecte ce pot fi aduse în ‘camera vrăjilor’ de către un singur ‘elev
vrăjitor’ la sfârşitul orei
- pe al doilea rând, cel mai mare număr de cutii pe care îl poate primi fiecare elev respectând condiţiile din
problemă
Restricţii şi precizări:
- Numărul n al elevilor, puterea şi viteza fiecăruia sunt numere naturale mai mari decât zero şi mai mici sau egale
cu 100
- Fiecare cutie va conţine numai obiecte ale unui singur ‘elev vrăjitor’
- Fiecare elev va primi acelaşi număr de cutii
Verificaţi să NU aveţi în programul vostru uses crt sau #include <conio.h>
Exemplu:
Date de intrare Date de ieşire Explicaţie
5 40 5 - ‘elevi vrăjitori’
5 2 2 elev 1 : Număr total de obiecte =5*2=10
6 4 elev 2 : Număr total de obiecte=6*4=24
3 10 elev 3 : Număr total de obiecte=3*10=30
20 2 elev 4 : Număr total de obiecte=20*2=40
7 2 elev 5 : Număr total de obiecte=7*2=14
40 este cel mai mare număr de obiecte aduse de un vrăjitor
2 este cel mai mare număr de cutii pe care îl poate primi fiecare elev
Date de intrare Date de ieşire Explicaţie
3 48 3 - ‘elevi vrăjitori’
4 2 4 elev 1 : Număr total de obiecte =4*2=8
6 8 elev 2 : Număr total de obiecte=6*8=48
6 6 elev 3 : Număr total de obiecte=6*6=36
48 este cel mai mare număr de obiecte aduse de un vrăjitor
4 este cel mai mare număr de cutii pe care îl poate primi fiecare elev
Cerinţă:
Scrieţi un program care, citind numărul n şi o cifră nenulă c, afişează numărul de apariţii ale cifrei c
în reprezentarea tuturor numerelor de la 1 la n.
Date de intrare:
Se citesc de la tastatură numerele n şi c.
Date de ieşire:
Se afişează numărul de apariţii al cifrei c în reprezentarea tuturor numerelor de la 1 la n.
Restrictii si precizari:
0<n<1 000 000 000
0<c<10
Exemplu:
Pentru n=15 şi c=1 se afişează 8.
Explicaţie: în şirul 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15, cifra 1 apare de 8 ori.
Cerinţă:
Introducându-se de la tastatură un şir de caractere ce reprezintă numele unei persoane, afişaţi
piramida norocului şi determinaţi cifra norocoasă corespunzătoare.
Date de intrare:
- se va citi de la tastatură un şir de caractere ce reprezintă numele unei persoane;
- acest şir de caractere este corect introdus şi nu conţine decât litere; nu are importanţă dacă
sunt sau nu majuscule.
Date de ieşire:
- pe ecran se va afişa pe primul rând numele persoanei (şirul de caractere introdus de la
tastatură);
- pe următoarele rânduri se va afişa piramida norocului astfel:
- cifrele de pe un rând al piramidei se vor afişa despărţite de un spaţiu;
- primul rând de cifre al piramidei va fi aliniat la marginea din stânga a ecranului, celelalte
rânduri vor fi astfel afişate încât să dea forma piramidei aşa cum este afişată în exemplul
de mai jos.
Restrictii si precizari:
- şirul de caractere introdus de la tastatură nu va depăşi 80 de caractere.
Exemplu:
SONIA
1 6 5 9 1 1+6=7 6+5=11=1+1=2 5+9=14=1+4=5 9+1=10=1+0=1
7 2 5 1
9 7 6
7 4
2
Timp de rulare/test: 1 secundă
Ministerul Educaţiei şi Cercetării
Olimpiada de Informatică Clasa a VIII-a
Faza judeţeană, 19 martie 2006
Cerinţă:
Dintre toate numerele mari formate ca mai sus, se cere să se determine cel mai mare
dintre ele care este palindrom.
Date de intrare:
Fişierul de intrare mare.in conţine pe prima linie numărul n, iar pe linia a doua
numerele naturale x1, …, xn cu un spaţiu între ele.
Date de ieşire:
Fişierul de ieşire mare.out va conţine pe prima linie numărul mare din cerinţă.
Restrictii:
1 n 100
x1, …, xn sunt numere naturale cu maximum 9 cifre.
Observaţii:
Prin secvenţă de numere într-un şir de numere, înţelegem unul sau mai multe
numere aflate unul imediat după altul în şir.
Prin număr palindrom înţelegem un număr care, citit de la stânga la dreapta sau
de la dreapta la stânga, ne dă acelaşi număr.
Toate testele folosite la evaluare conţin cel puţin un număr mare.
Exemplu:
mare.in mare.out Explicaţie
9 401104 Secvenţele de numere care ne dau numere mari
80 1 23 2 1 401 10 4 900 palindroame sunt:
1
1, 23, 2, 1
2
4
şi
401, 10, 4
Acestea ne dau numerele mari 1, 12321, 2,
4 şi 401104. Dintre acestea, cel mai mare
este ultimul.