Sunteți pe pagina 1din 5

Concurs online de informatic

Categoria PROGRAMARE
Seciunea 11-12
PROBLEMA 1

100 puncte

CUVINTE ASCUNSE
Programatoarea Petra a nceput un curs de criptografie. Fiind un spirit creativ, Petra a creat
deja o metod elaborat de criptare a unei parole sub forma unei perechi (tabel de litere aparinnd
mulimii {a...z}, dicionar de cuvinte). Din pcate pentru Petra, metoda ei de criptare a parolei,
poate fi decriptat de oricine astfel:
- se iau tabelul de litere i dicionarul de cuvinte permise
- se listeaz, sorteaz i numr toate cuvintele care se gsesc n tabel. Un cuvnt c1c2:::ck care
exist n dicionar exist i n tabel dac, fiecare liter ci apare n tabel i pentru i>1 ci este vecin n
tabel cu litera ci-1.
- din lista sortata de T perechi (cuvnti, ai), unde cuvnti este un cuvnt iar ai este numrul de
apariii n tabel, reconstituie litera pi a parolei astfel: pi = a + (ai mod 26).
ncercnd s mbunteasc algoritmul, Petra a decis s nlocuiasc unele litere din tabel cu
semnul ntrebrii `?'. Un semn `?' poate fi nlocuit cu orice liter cnd se parcurge tabelul.
Convinge-o pe Petra c, n ciuda mbuntirii, i poi gsi parola pornind de la orice pereche
de (dicionar, tabel de litere) dat.
Cerina
Dat fiind un tabel de litere de dimensiuni N x M, i o list a cuvintelor din dicionar, s se afieze
lista sortat de T perechi de forma `ci: ai' i parola Petrei.
Date de intrare
Fiierul ca.in va conine N + C + 1 linii; pe prima linie N M C - dimensiunile tabelului, i numrul
de cuvinte din dicionar. Apoi cele N linii ale tabelului:
t1,1:::t1,m
...
tn,1:::tn,m
urmate de cele C cuvinte din dicionar, fiecare pe o linie:
cuvnt1
...
cuvntC
Date de iesire
Fiierul ca.out va conine pe prima linie T, numrul de cuvinte distincte gsite n tabel. Pe
urmtoarele T linii se vor afla perechi cuvnti ai separate printr-un spaiu. Pe ultima linie se va afla
un ir de caractere reprezentand parola Petrei.
Exemplu
ca.in
223
ea
l?
ea
elena
arc

ca.out
2
ea 3
elena 1
db

Explicaii
Am gasit cuvntul ea de 3 ori: o data pe prima linie a
tabelului, o data pe diagonala principal, inlocuind `?'
cu `a', i o data ca ?a" inlocuind `?' cu `e'.
Am gasit cuvntul elena o data, inlocuind `?' cu `n'.

Ploieti, 28 mai 2016

Concurs online de informatic


Categoria PROGRAMARE
Seciunea 11-12
Restricii i precizri
O secven de litere reprezint un cuvnt dac se afl n dicionarul dat ca date de intrare.
Dicionarul conine cuvinte formate din litere aparinnd mulimii {a...z}U{A...Z}
Literele mici i cele mari se consider egale. Dou litere sunt vecine n tabel, dac celulele lor au o
latura sau un col comun.
Aceeai litera din tabel se poate folosi de mai multe ori ntr-un cuvnt.
Dac acelai semn '?' este folosit de mai multe ori ntr-un cuvnt, trebuie s reprezinte aceeai liter
de fiecare dat.
0<N<6
0<M<6
0 < C < 20000
Timp maxim de execuie: 0.3 secunde/test
Memorie total disponibil: 8 MB i 8 MB pentru stiv
Dimensiunea maxim a sursei: 10 Kb

PROBLEMA 2

100 puncte

PEOPLEBOOK
PeopleBook e o companie grozav care permite oricui are un profil s se conecteze online cu toi
prietenii. Una din cele mai apreciate caliti ale companiei PeopleBook este c selecioneaz i
afieaz informaii nu de la toi prietnii, ci de la cei mai buni k prieteni ai ti. Recent, din cauza unor
probleme cu baza de date, inginerii de la PeopleBook au pierdut o mulime de informaii, printre
care i cine sunt cei mai buni k prieteni ai fiecrui utilizator. Tot ce le-a mai rmas este un grafic
2D, n care fiecare utilizator este un punct. Din fericire, ei tiu ca punctele au fost alese astfel nct,
cei mai buni k prieteni ai unui utilizator U sunt reprezentai de cele mai apropiate k puncte de U. Ei
te roag ca pornind de la acea harta 2D s i ajui s recalculeze cei mai buni k prieteni ai fiecrui
utilizator.
Date de intrare
Fisierul pb.in va conine N+2 linii:
N: numrul de utilizatori pe prima linie
K: numrul de prieteni pe a doua linie
Px1 Py1
:::
PxN PyN : coordonatele 2D ale celor N utilizatori (coordonatele fiecarui utilizator separate prin cte
un spaiu pe o linie)
Date de ieire
n fiierul pb.out se vor afia N linii, unde linia i reprezint indicii celor mai buni k prieteni ai
utilizatorului i, sortai cresctor n funcie de distanta dintre ei i prietenul i:
F11 F12 ::: F1k
...
FN1 FN2 ::: FNk

Ploieti, 28 mai 2016

Concurs online de informatic


Categoria PROGRAMARE
Seciunea 11-12
Exemplu
pb.in
4
2
11
20
34
10 10

pb.out
12
02
01
20

Explicaii
Avem 4 utilizatori. Pentru utilizatorul 0, cei
mai buni 2 prieteni sunt 1 si 2.
Etc.

Restricii i precizri
Coordonatele sunt numere reale ntre 0 i 10000.
N < 10000
k <= 20
N >= k+1
Indicele utilizatorilor pornete de la 0.
Timp maxim de execuie: 1,5 secunde/test.
Memorie total disponibil 20 MB, din care 10 MB pentru stiv
Dimensiunea maxim a sursei: 10 KB.

PROBLEMA 3

100 puncte

SEC
n timp ce-i bea sortimentul preferat de vin sec, vrjitorului Arpsod i-a venit n minte o
problem de informatic ce are un enun cel puin la fel de sec i anume:
Dndu-se un arbore binar cu N noduri i rdcina n nodul 1, s se rspund la Q ntrebri de
forma: sunt cei doi fii ai nodului X identici?
Doi fii sunt identici dac au acelai numr de subarbori i acetia sunt identici (mai exact, pentru
orice i=1, 2, ..., N subarborele i al primului este identic cu subarborele i al celui de-al doilea).
Cerina
Cunoscndu-se arborele, s se rspund la cele Q ntrebri de forma indicat n enun.
Date de intrare
Pe prima linie a fiierului sec.in se afl numrul natural N, reprezentnd numrul de noduri ale
arborelui. Urmtoarele N-1 linii conin perechi de forma ( x, y ) cu semnificaia c exist muchie
ntre nodul x i nodul y. Pe a (N+1)-a linie se va afla numrul natural Q, reprezentnd numrul de
ntrebri. Pe urmtoarele Q linii se va afla cte un numr natural reprezentnd eticheta nodului ai
crui fii vor fi analizai.
Date de ieire
Fiierul sec.out va avea Q linii. Pe fiecare linie va fi scris cuvntul DA (fr ghilimele) dac cei
doi fii sunt identici respectiv NU (fr ghilimele) n caz contrar .
Restricii si precizri:
1 N 200.000
Ploieti, 28 mai 2016

Concurs online de informatic


Categoria PROGRAMARE
Seciunea 11-12

1 Q 500.000
Nodurile arborelui sunt etichetate de la 1 la N.
Rdcina va fi mereu n nodul 1.
n cazul n care nodul cerut nu are fii, se va afia DA (se consider c sunt doi fii NULL
identici )
Se garanteaz c pentru 30% din teste 1 N 1000 i 1 Q 3000

Exemplu
sec.in
9
12
13
24
25
36
48
59
67
4
1
2
3
7

sec.out
NU
DA
NU
DA

Explicaie
1

Nodurile 2, 7, 8, 9 au ambii fii identici. Celelalte


noduri nu au aceasta proprietate
Timp maxim de execuie: 1 secunda / test
Memorie total disponibil: 16 MB i 16 MB pentru stiv
Dimensiunea maxim a sursei: 10Kb

PROBLEMA 4

100 puncte

UNICORN
Este ziua unicornului Corn i prietenii lui vor s-i pregteasc o surpriz, un mare turn de cltite!
Totul trebuie s fie perfect, i toat lumea tie c cel mai frumos turn are form de corn (cltitele
sunt aezate n ordine strict descresctoare dup raz). Ei pregtesc cltite de diferite mrimi i le
aaz una peste alta. Fiecare cltit are o anumit valoare nutritiv. Dup ce termin de gtit, acetia
vor s creeze un turn de cltite in form de corn pentru prietenul lor Corn. Astfel, unicornii pot
alege s mnance oricte cltite vor, cltitele rmase pstrndu-i ordinea iniial . Cltitele care
rmn n farfurie (pastrnd ordinea iniial) trebuie s aib form de corn(strict descresctor dup
raz) . Deoarece Corn ador cltitele, ei vor ca turnul Corn format din cltitele rmase dup ce
Ploieti, 28 mai 2016

Concurs online de informatic


Categoria PROGRAMARE
Seciunea 11-12
acetia mnnc s aib cea mai mare valoare nutritiv(suma valorilor nutritive ale cltitelor
rmase).
Cerine
Cunoscndu-se numrul N de cltite, se cere s se gseasc turnul cu cea mai mare valoare
nutritiv.
Date de intrare
In fiierul de intrare UNICORN.IN se d N, numrul de cltite, iar pe urmtoarele N linii se afl
cte o pereche de valori (R, C), unde R este raza cltitei i C valoarea nutritiv, n ordinea n care
acetia le-au gtit.
Date de ieire
n fiierul UNICORN.OUT, pe prima linie se va afia valoarea nutritiv total urmat de un spaiu
i nlimea turnului de cltite, iar pe a doua linie indicii cltitelor alese n ordine cresctoare. Dac
exist mai multe soluii se va alege cea cu numr maxim de cltite, iar n caz de multiplicitate a
maximului se va alege soluia minim din punct de vedere lexicografic n raport cu indicii din irul
iniial.
.
Restricii
1N105
1R 109
1C1000
Fie un ir de indici (X1,X2,...,Xk) i (Y1,Y2,...,Yk) . irul (X1,X2,...,Xk) este mai mic din punct de
vedere lexicografic dect irul (Y1,Y2,...,Yk) dac exist un indice p , 1<=p<k astfel nct , Xi
== Yi oricare ar fi i, 1<=i <= p i Xp < Yp
Exemple

UNICORN.IN
5
7 15
75
94
85
6 10
3
35
2 10
10 15

UNICORN.OUT
25 2
15

Explicaii
Se aleg prima i a 5-a cltit pentru a forma cadoul
pentru Corn (celelalte cltite vor fi mncate de
prietenii lui).. Valoarea nutritiva este 15 + 10 = 25.

15 2
12

Se aleg primele dou cltite pentru a forma cadoul


pentru Corn deoarece sunt mai multe cltite dect
dac am alege doar a 3-a cltit. Valoarea nutritiv
este 5 + 10 = 15.

Timp maxim de executare: 0,4 secunde/test


Memorie total: 32 MB dintre care 16 MB pentru stiv
Dimensiunea maxim a sursei: 5KB

Ploieti, 28 mai 2016

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