Cod sursa(job #1148088)

Utilizator dan.ghitaDan Ghita dan.ghita Data 20 martie 2014 13:51:26
Problema Zeap Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Semestrul 2 Marime 1.39 kb
#include <iostream>
#include <fstream>
#include <set>
#include <string>
#define INF 66666666
using namespace std;
ifstream f("zeep.in");
ofstream g("zeep.out");
set<int> zeep;
set<int>::iterator it, jt;

string s;
int mx, mn, x;
void parse(){
    x=0;
    for(int i=2; i<s.size(); ++i)
        x=x*10+(s[i]-'0');
}


int main()
{
    while(getline(f, s)){
//        g<<s<<'\n';
        if(s.front() == 'I')
            parse(), zeep.insert(x);
        if(s.front() == 'S'){
            parse();
            if(zeep.find(x)==zeep.end()){
                g<<-1<<'\n'; continue;
            }
            zeep.erase(x);
        }
        if(s.front() == 'C')
            parse(), g<<(zeep.find(x) != zeep.end())<<'\n';
        if(s == "MIN"){
            if(zeep.size() < 2){
                g<<-1<<'\n'; continue;
            }
            mn=INF;
            jt = zeep.begin(); it = jt; ++it;
            for(; it!=zeep.end(); ++it, ++jt)
                mn = min(mn, (*it)-(*jt));
            g<<mn<<'\n';
        }
        if(s == "MAX"){
            if(zeep.size() < 2){
                g<<-1<<'\n'; continue;
            }
            mx = 0;
            jt = zeep.end(); it = zeep.begin(); --jt;
//            for(; it!=zeep.end(); ++it, ++jt)
//                mx = max(mx, (*it)-(*jt));
            g<<(*jt)-(*it)<<'\n';
        }

    }



    return 0;
}