Pagini recente » Diferente pentru sandbox intre reviziile 3 si 4 | Atasamentele paginii Standard Template Library (STL) | Atasamentele paginii Profil george55 | Atasamentele paginii Ludo | Diferente pentru problema/zeap intre reviziile 1 si 2
Diferente pentru
problema/zeap intre reviziile
#1 si
#2
Diferente intre titluri:
Diferente intre continut:
==Include(page="template/taskheader" task_id="zeap")==
== include(page="template/taskheader" task_id="zeap") ==
Poveste ...
h2. Cerinta
...
h2. Restrictii
...
h2. Date de intrare
...
h2. Date de iesire
...
h2. Exemplu
| zeap.in | zeap.out |
| linia1
linia2
linia3
| linia1
linia2
|
== include(page="template/taskfooter" task_id="zeap") ==
==Include(page="template/raw")==
zeap
Desi putini stiu, una din marile pasiuni ale lui Zaharel sunt structurile de date. Intr-o zi de vara, rasfoind diverse cursuri de structuri de date, Zaharel s-a decis sa inventeze propria lui structura pe care a numit-o zeap. In conceptia lui Zaharel, un zeap mentine o multime de numere naturale distincte si suporta urmatoarele operatii intr-un timp eficient:
S INSEREAZA(Z,x): se insereaza elementul x in zeap-ul Z; daca x exista deja in zeap se ignora operatia; aceasta operatie nu returneaza nimic
S STERGE(Z,x): se sterge elementul x din zeap-ul Z; in cazul in care elementul nu exista in zeap, operatia returneaza -1
S CAUTA(Z,x) : se cauta elementul x in zeap-ul Z; se returneaza 0 daca elementul nu exista sau 1 daca exista
S MAX-DIF(Z): returneaza diferenta in modul maxima dintre oricare doua elemente distincte din zeap-ul Z; daca nu exista cel putin doua elemente in zeap se returneaza -1
S MIN-DIF(Z): returneaza diferenta in modul minima dintre oricare doua elemente distincte din zeap-ul Z; daca nu exista cel putin doua elemente in zeap se returneaza -1
h2. Cerinta
Screiti un program care sa simuleze comportamentul unui zeap.
h2. Date de Intrare
Fisierul de intrare zeap.in va contine pe fiecare linie descrierea unei operatii:
I x: se efectueaza operatia INSEREAZA(Z,x)
S x: se efectueaza operatia STERGE(Z,x)
C x: se efectueaza operatia CAUTA(Z,x)
MAX: se efectueaza operatia MAX-DIF(Z)
MIN: se efectueaza operatia MIN-DIF(Z)
h2. Date de Iesire
Pentru fiecare operatie care returneaza o valoare se va afisa rezultatul respectiv pe cate o linie in fisierul de iesire zeap.out.
h2. Restrictii si observatii
S Fisierul de intare va contine maxim 300.000 linii
S Numerele care se vor insera in zeap vor fi numere naturale din intervalul [1...10^9]
S Se recomanda folosirea functiilor gets/fgets pentru cei ce programeaza in C/C++ datorita volumului mare de date de intrare
h2. Exemplu
zeap.in zeap.out
I 1 -1
I 3 6
S 2 2
I 7 0
MAX 1
MIN 6
C 5 6
C 1
S 3
MAX
MIN
==Include(page="template/taskfooter" task_id="zeap")==
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.