Nu aveti permisiuni pentru a descarca fisierul grader_test2.in
Diferente pentru problema/zeap intre reviziile #9 si #2
Diferente intre titluri:
Zeap
zeap
Diferente intre continut:
==Include(page="template/taskheader" task_id="zeap")==
== include(page="template/taskheader" task_id="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: * **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; * **STERGE{@(Z,x)@}**: se sterge elementul $x$ din zeap-ul $Z$; in cazul in care elementul nu exista in zeap, operatia returneaza -1; * **CAUTA{@(Z,x)@}**: se cauta elementul $x$ in zeap-ul $Z$; se returneaza 0 daca elementul nu exista sau 1 daca exista; * **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; * **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;
Poveste ...
h2. Cerinta
Scrieti 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:
...
**Ix**: seefectueaza operatia **INSEREAZA{@(Z,x)@}**
h2. Restrictii
**S x**: se efectueaza operatia **STERGE{@(Z,x)@}**
...
**C x**: se efectueaza operatia **CAUTA{@(Z,x)@}** **MAX**: se efectueaza operatia **MAX-DIF{@(Z)@}**
h2. Date de intrare
**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 precizari * Fisierul de intare va contine maxim $300 000$ linii * Numerele care se vor insera in zeap vor fi numere naturale din intervalul $[1...10^9^]$ * Se recomanda folosirea functiilor gets/fgets pentru cei ce programeaza in C/C++ datorita volumului mare de date de intrare
...
h2. Exemplu
table(example). |_. zeap.in |_. zeap.out | |I 1 I 3 S 2 I 7 MAX MIN C 5 C 1 S 3 MAX MIN |-1 6 2 0 1 6 6|
| zeap.in | zeap.out | | linia1 linia2 linia3 | linia1 linia2 |
==Include(page="template/taskfooter" task_id="zeap")==
== include(page="template/taskfooter" task_id="zeap") ==
Nu exista diferente intre securitate.
Diferente intre topic forum:
1328