Cod sursa(job #1097682)

Utilizator mazaandreiAndrei Mazareanu mazaandrei Data 3 februarie 2014 20:17:24
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include<fstream>
#include<vector>
#define mod 666013
using namespace std;
int n,t,x;
ifstream in("hashuri.in"); ofstream out("hashuri.out");
vector <int> l[mod];
vector <int> :: iterator cauta(int x){
    int lista=x%mod;
    for(vector <int> :: iterator it=l[lista].begin(); it!=l[lista].end();++it)
        if(x==(*it)) return it;
    return l[lista].end(); //caut in lista numerelor x%mod==lista numarul cautat. daca nu il gasesc returnez .end()
}
void insereaza(int x){
    int lista=x%mod;
    if(cauta(x)==l[lista].end()) //daca nu il gasesc il bag colo
        l[lista].push_back(x);
}
void scoate(int x){
    int lista=x%mod;
    vector <int> :: iterator it=cauta(x);
    if(it!=l[lista].end())  //daca il gasesc il scot de colo
        l[lista].erase(it);
}
int main(){
    //versiunea 3: hashuri
    in>>n;
    for(int i=1;i<=n;++i){
        in>>t>>x;
        switch(t){
            case 1:{insereaza(x); break;};
            case 2:{scoate(x);    break;};
            case 3:{if(cauta(x)!=l[x%mod].end()) out<<"1\n"; else out<<"0\n"; break;};
        };
    }
    out.close();
    return 0;
}