Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | zeap.in, zeap.out | Sursă | Happy Coding 2006 |
Autor | Mircea Bogdan Pasoi | Adăugată de | |
Timp execuţie pe test | 0.6 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Zeap
Aceasta pagina a fost importata din infoarena1 si nu este inca prelucrata. Sterge ==Include(file="template/raw")== cand esti multumit cu continutul paginii. |
---|
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: se insereaza elementul x in zeap-ul Z; daca x exista deja in zeap se ignora operatia; aceasta operatie nu returneaza nimic
S STERGE: se sterge elementul x din zeap-ul Z; in cazul in care elementul nu exista in zeap, operatia returneaza -1
S CAUTA : se cauta elementul x in zeap-ul Z; se returneaza 0 daca elementul nu exista sau 1 daca exista
S MAX-DIF: 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: 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
Cerinta
Screiti un program care sa simuleze comportamentul unui zeap.
Date de Intrare
Fisierul de intrare zeap.in va contine pe fiecare linie descrierea unei operatii:
I x: se efectueaza operatia INSEREAZA
S x: se efectueaza operatia STERGE
C x: se efectueaza operatia CAUTA
MAX: se efectueaza operatia MAX-DIF
MIN: se efectueaza operatia MIN-DIF
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.
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
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