Diferente pentru problema/zeap intre reviziile #4 si #9

Nu exista diferente intre titluri.

Diferente intre continut:

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;
* **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;
* **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;
* **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;
* **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;
* **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
Fisierul de intrare $zeap.in$ va contine pe fiecare linie descrierea unei operatii:
**I x**: se efectueaza operatia **INSEREAZA({$Z,x$})**
**I x**: se efectueaza operatia **INSEREAZA{@(Z,x)@}**
**S x**: se efectueaza operatia **STERGE({$Z,x$})**
**S x**: se efectueaza operatia **STERGE{@(Z,x)@}**
**C x**: se efectueaza operatia **CAUTA({$Z,x$})**
**C x**: se efectueaza operatia **CAUTA{@(Z,x)@}**
**MAX**: se efectueaza operatia **MAX-DIF({$Z$})**
**MAX**: se efectueaza operatia **MAX-DIF{@(Z)@}**
**MIN**: se efectueaza operatia **MIN-DIF({$Z$})**
**MIN**: se efectueaza operatia **MIN-DIF{@(Z)@}**
h2. Date de iesire
* 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$]
* 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
6|
==Include(page="template/taskfooter" task_id="zeap")==
 
 
 

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
1328