Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2006-11-11 16:43:05.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:zeap.in, zeap.outSursăHappy Coding 2006
AutorMircea Bogdan PasoiAdăugată de
Timp execuţie pe test1.2 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise | Statistici

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: se insereaza elementul x in zeap-ul Z; daca x exista deja in zeap se ignora operatia; aceasta operatie nu returneaza nimic;
  • STERGE: se sterge elementul x din zeap-ul Z; in cazul in care elementul nu exista in zeap, operatia returneaza -1;
  • CAUTA: se cauta elementul x in zeap-ul Z; se returneaza 0 daca elementul nu exista sau 1 daca exista;
  • 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;
  • 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

Scrieti 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 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

Exemplu

zeap.inzeap.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
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?