6
Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014 Clasa a IX-a Problema 1 Rochiţe colorate 100 puncte Un croitor doreşte să facă nişte rochii mai deosebite. El are la dispoziţie n tipuri de material, codificate prin numere de la 1 la n şi aranjate în aşa fel încât să rezulte o combinaţie coloristică frumoasă dacă sunt luate în ordinea stabilită. Pentru confecţionarea fiecărei rochii foloseşte doar k tipuri de material, unde k≤n, un metru din fiecare tip. El ar dori să înceapă confecţionarea rochiilor de la primul material şi să continue cu acest model până unul din cele k materiale (sau toate) se epuizează. Croitorul ar dori totuşi să ştie dacă reuşeşte să termine toate tipurile de material după confecţionarea rochiilor. Ajutaţi-l voi să calculeze acest lucru. Date de intrare Datele de intrare se citesc din fişierul de intrare ROCHII.IN, în care pe prima linie se află scris numărul natural n, pe a doua linie este scris numărul natural k, iar pe a treia linie sunt cele n dimensiuni ale celor n tipuri de material. Date de ieşire Datele de ieşire vor fi scrise în fişierul ROCHII.OUT. Dacă problema nu admite soluţie, în fişierul de ieşire se va scrie mesajul ‘Imposibil’, altfel se va scrie o succesiune de numere ce reprezintă codul materialului de la care începe selecţia. Restricţii şi precizări 2 ≤ n ≤ 1000; 1 ≤ k ≤ n; 0 ≤ cantitatea materialului i ≤ 100. Exemple ROCHII.IN ROCHII.OUT 8 Imposibil 4 1 2 3 4 0 0 0 0 ROCHII.IN ROCHII.OUT 20 1 1 4 11 11 14 4 2 2 2 3 1 1 1 0 0 0 2 2 2 3 1 1 1 0 0 0 Profesori propunători Duţă Laura şi Popa Mirela Colegiul Spiru Haret Ploieşti

Locala Informatica Prahova 2014

Embed Size (px)

DESCRIPTION

Locala Informatica Prahova 2014

Citation preview

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

Clasa a IX-a

Problema 1 – Rochiţe colorate 100 puncte

Un croitor doreşte să facă nişte rochii mai deosebite. El are la dispoziţie n tipuri de material,

codificate prin numere de la 1 la n şi aranjate în aşa fel încât să rezulte o combinaţie coloristică

frumoasă dacă sunt luate în ordinea stabilită. Pentru confecţionarea fiecărei rochii foloseşte doar k

tipuri de material, unde k≤n, un metru din fiecare tip. El ar dori să înceapă confecţionarea rochiilor

de la primul material şi să continue cu acest model până unul din cele k materiale (sau toate) se

epuizează. Croitorul ar dori totuşi să ştie dacă reuşeşte să termine toate tipurile de material după

confecţionarea rochiilor. Ajutaţi-l voi să calculeze acest lucru.

Date de intrare

Datele de intrare se citesc din fişierul de intrare ROCHII.IN, în care pe prima linie se află

scris numărul natural n, pe a doua linie este scris numărul natural k, iar pe a treia linie sunt cele n

dimensiuni ale celor n tipuri de material.

Date de ieşire

Datele de ieşire vor fi scrise în fişierul ROCHII.OUT. Dacă problema nu admite soluţie, în

fişierul de ieşire se va scrie mesajul ‘Imposibil’, altfel se va scrie o succesiune de numere ce

reprezintă codul materialului de la care începe selecţia.

Restricţii şi precizări

2 ≤ n ≤ 1000;

1 ≤ k ≤ n;

0 ≤ cantitatea materialului i ≤ 100.

Exemple

ROCHII.IN ROCHII.OUT

8 Imposibil

4

1 2 3 4 0 0 0 0

ROCHII.IN ROCHII.OUT

20 1 1 4 11 11 14

4

2 2 2 3 1 1 1 0 0 0 2 2 2 3 1 1 1 0 0 0

Profesori propunători Duţă Laura şi Popa Mirela

Colegiul Spiru Haret Ploieşti

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

Clasa a IX-a

Problema 2 – Numere 100 puncte

Se dă o bază de numeraţie b cuprinsă între 2 şi 36 şi un număr natural n, de maxim 500 de cifre în baza b. Să se calculeze numărul n, scris în baza 10.

Sunt disponibile două metode de reprezentare a cifrelor într-o bază oarecare: În codificarea directă, cifrele ’0’, ’1’, … , ’9’, au semnificaţia obişnuită. În codificarea literală, literele ’a’, ’b’, … , ’z’ sau ’A’, ’B’, … , ’Z’, completează cifrele

de la 10 la 35 astfel: Literele ’a’ sau ’A’ reprezintă cifra 10 într-o bază de numeraţie b mai mare sau

egală cu 11. Literele ’b’ sau ’B’ reprezintă cifra 11 într-o bază de numeraţie b mai mare sau

egală cu 12. Și aşa mai departe, până la literele ’z’ sau ’Z’ care reprezintă cifra 35 în baza

36.

Fișierul de intrare numere.in conține pe prima linie baza de numerație b și pe a doua

linie, numărul n scris în baza b, folosind cele două codificări posibile ale cifrelor. Fișierul de ieșire numere.out conține pe prima linie numărul n scris în baza 10.

Exemple:

numere.in numere.out

7

4326250

528010

2

101010

42

17

3fe4g

328388

Evaluare: 10 teste, a câte 10 puncte fiecare. Timp de execuţie: 50 milisecunde.

Profesor propunător Radu Aurelian,

Colegiul “Spiru Haret” Ploieşti

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

Clasa a X-a

Problema 1 Bila 100 puncte

Fie un teren dreptunghiular codificat printr-o matrice A cu N linii şi M coloane. Fiecare

element al matricii este un număr natural reprezentând altitudinea respectivei porţiuni de teren. Se

presupune că o bilă porneşte cu viteza Vo din punctul de coordonate (L, C) şi se poate deplasa într-o

porţiune învecinată de teren pe cele patru direcţii: sus, jos, stânga, dreapta. Dacă prin deplasare bila

coboară K unităţi de nivel atunci viteza sa creşte cu K unităţi de viteză. Dacă prin deplasare bila urcă

K unităţi de nivel atunci viteza sa scade cu 2*K unităţi de viteză. În plus, în toate cazurile, din cauza

frecării, viteza scade cu o unitate de viteză. Bila se poate deplasa într-o porţiune învecinată de teren

doar dacă viteza rămâne strict pozitivă.

Cerinţă: Determinaţi, dacă există, viteza maximă cu care bila poate ajunge într-o porţiune de

teren de pe marginea matricii.

Date de intrare: fişierul bila.in

- pe prima linie valorile N M L C Vo separate prin câte un spaţiu.

- pe fiecare din următoarele N linii câte M valori reprezentând înălţimile de pe linia corespunzătoare

din matrice, separate prin câte un spaţiu.

Date de ieşire: fişierul bila.out

- pe o singură linie valoarea MAX reprezentând viteza maximă sau valoarea -1 dacă bila nu poate

ajunge pe nici o cale la marginea matricii.

Restricţii şi precizări:

1≤N, M≤100 ; 1≤L≤N ; 1 ≤C≤M.

0≤A[I, J]≤1000 oricare (I, J).

1≤V≤2000.

Toate valorile sunt numere întregi.

Exemplu:

bila.in

4 4 3 3 2000

10 5 0 1000

25 300 500 1000

50 2 0 1000

1000 1000 1000 1000

bila.out

1944

Explicaţie: Drumul optim este: (3, 3)->(3, 2)->(3, 1)->(2,1)->(1,1)->(1, 2)->(1, 3)

Timp de execuţie: 1 secundă/test.

Profesor propunător Radu Vişinescu

Colegiul Naţional “I.L.Caragiale” Ploieşti

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

Clasa a X-a

Problema 2 Putere 100 puncte Doi seismologi au creat un algoritm foarte rapid pentru calculul puterii unui număr. Problema

era simplă: dându-se x şi n, n număr natural, să se calculeze valoarea xn (x la puterea n). Algoritmul

propus de ei este cel de mai jos:

Vector rest[NMAX]

Pasul 1: citeste x,n;

Pasul 2: pozitie = 0

Pasul 3: daca n este 0, atunci y=1

Pasul 4: altfel

Pasul 5: cat timp n>1 executa

Pasul 6: rest[pozitie] = n modulo 2

Pasul 7: n = n div 2

Pasul 8: pozitie = pozitie + 1

Pasul 9: y = x

Pasul 10: cat timp pozitie > 0 executa

Pasul 11: pozitie = pozitie – 1

Pasul 12: y = y*y

Pasul 13: daca rest[pozitie] este 1, atunci y=y*x

Pasul 14: scrie y

Unde:

rest[] este un vector de întregi de dimensiune NMAX care începe la poziţia 0

operatorul = este operatorul de atribuire (:= din Pascal)

operatorul modulo este restul împărţirii întregi (mod din Pascal sau % din C++)

operatorul div este câtul împărţirii întregi (div din Pascal sau / din C++)

ramura altfel de la pasul 4 execută paşii 5,9,10

repetiţia din pasul 5 execută paşii 6,7,8

repetiţia din pasul 10 execută paşii 11,12,13

Totuşi, la implementare, ei au întâmpinat doua greutăţi. Prima dintre ele, alocarea, este legată

de cât de mare trebuie să fie NMAX, astfel încât să se poată calcula xn, pentru un n dat. Şi a doua,

câte operaţii critice de înmulţire (operatorul *) efectuează algoritmul, tot pentru o putere n dată. Să îi

ajutăm să rezolve cele două probleme.

Date de intrare: În fişierul putere.in, se dă numărul natural n, n număr zecimal cu maxim

1000 de cifre.

Date de ieşire: În fişierul putere.out, apar, pe prima linie, numărul minim de elemente pentru

vectorul rest[] (valoarea pentru NMAX), necesar efectuării ridicării la puterea n şi numărul de

operaţii de înmulţire efectuate de algoritm pentru aceeaşi putere n, despărţite printr-un spaţiu.

Exemple:

putere.in putere.out

1544 10 12

96534125345643564524365534254 96 146

10 3 4

Evaluare: 10 teste, fiecare 10 puncte, câte 5 puncte pentru fiecare din cele două valori de ieşire

corecte.

Timp de execuţie: 50 milisecunde (0,05 s) / test Profesor propunător Radu Aurelian,

Colegiul “Spiru Haret” Ploieşti

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

CLASA a XI-a-a XII-a

Problema 1 Autostrăzi 100puncte

Conform planului de guvernare, ministrul marilor proiecte din Renania a cerut

consilierilor săi sa întocmească o harta cu toate autostrăzile pe care populația ar dori sa le construiască in următorii 10 ani. In urma studiului de fezabilitate au calculat si costurile

necesare construcției fiecărei autostrăzi propuse. Problema ministrului este ca nu are la

dispoziție decât o suma de bani S si, in plus, el dorește sa meargă numai pe autostrada atunci când va inspecta lucrările, așa ca nici o autostrada nu trebuie sa înceapă a fi construita decât daca se poate ajunge la ea mergând doar pe autostrăzi construite.

Având aceasta viziune, el a solicitat un plan de construcție al autostrăzilor care sa

îndeplinească următoarele cerințe: - Construirea autostrăzilor sa înceapă din capitala tarii, numerotata pe harta cu 1;

- Sa nu se depaseasca bugetul disponibil (S) - Prioritatea 0 a guvernului este ca numărul de orașe care vor fi conectate prin noua

rețea de autostrăzi sa fie cat mai mare, evident la un preț cat mai mic posibil. Ministrul, speriat de publicitatea negativa din presa, mai solicita drumarilor sa

continue construcția cu acele autostrăzi planificate care costa cel mai puțin dar numai daca toate orașele au putut fi conectate, crezând ca așa va reuși sa se laude

la sfârșit de mandat cu cel mai mare număr de autostrăzi finalizate si sa nu-i supere

pe acei cetățeni din orașele pana la care nu s-au putut construi autostrăzi; - O noua autostrada nu va fi începuta decât daca exista suficienți bani pentru

finalizarea ei. Date de intrare: Fișierul “auto.in” conține

-pe prima linie un număr n (n<=200) reprezentând numărul de orașe din Renania - pe a doua linie un număr S reprezentând suma de bani disponibila, exprimata in milioane de Ren, moneda naționala a Renaniei(S<=1000000000) - pe următoarele linii triplete de numere (x,y,z), numere naturale cu maxim 4 cifre reprezentând orașele si costul construirii unei autostrăzi intre ele

Date de ieșire: Fișierul “auto.out” conține Lista autostrăzilor construite sub forma tripletelor (x,y,z) din proiectul de dezvoltare

Pe ultima linie din fișier se vor afișa, separate prin spatii, 3 numere, reprezentând

Numărul de orașe in care se poate ajunge mergând numai pe autostrăzi

Numărul de autostrăzi construite

Suma de bani cheltuita pentru realizarea efectiva a proiectului Exemplu:

Auto.in

6 110 1 2 20 1 5 40 2 3 10 2 5 15 2 4 40 3 5 6 3 4 50 5 6 8

Auto.out

1 2 20 2 3 10 3 5 6 5 6 8 2 4 40 2 5 15 6 6 99

Auto1.in

6 80 1 2 20 1 5 40 2 3 10 2 5 15 2 4 40 3 5 6 3 4 50 5 6 8

Auto1.out

1 2 20 2 3 10 3 5 6 5 6 8 5 4 44

Profesor propunător Constantin Adriana Colegiul Naţional „Nichita Stănescu” Ploieşti

Inspectoratul Şcolar Judeţean Prahova Olimpiada Locală de Informatică – subiecte 25 ianuarie 2014

CLASA a XI-a-a XII-a

Problema 2 Surjecţie 100 puncte

Se dau numere naturale n şi m, .

Să se calculeze numărul funcţiilor surjective de la o mulţime cu n elemente la o

mulţime cu m elemente.

Se ştie că două funcţii şi sunt diferite între ele dacă există din mulţimea , astfel încât .

Date de intrare: În fişierul surjectie.in, se dau, pe prima linie, valorile n şi m,

separate printr-un spaţiu. Date de ieşire: În fişierul surjectie.out, apare, pe prima linie, numărul surjecţiilor de

la n la m. Exemple:

surjectie.in surjectie.out

7 2 126

5 3 150

6 6 720

Timp de execuţie: 50 milisecunde.

Teste: 10 teste a câte 10 puncte fiecare.

Profesor propunător Radu Aurelian,

Colegiul “Spiru Haret” Ploieşti