Cod sursa(job #1557219)

Utilizator c0mradec0mrade c0mrade Data 27 decembrie 2015 01:06:01
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include<fstream>
#include<vector>
#include<algorithm>
#define devil 666666
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
int n,a,b;
vector<int>has[1000001];
int add(int x)
{
    int r=x%devil;
    for(int i=0;i<has[r].size();++i)
        if(has[r][i]==x)
            return 0;
    has[r].push_back(x);
}
vector <int>::iterator hash_find(int x){
    int r=x%devil;
    vector <int>::iterator it;
    for(it=has[r].begin();it!=has[r].end();++it)
    {
        if(*it==x)
            return it;
    }
    return has[r].end();
}
void del(int x)
{
    int r=x%devil;
    vector <int>::iterator it=hash_find(x);
     if(it != has[r].end())
     {
        swap(has[r][has[r].size()-1],*it);
        has[r].pop_back();
     }
}

int show(int x)
{
    int r=x%devil;
    for(int i=0;i<has[r].size();++i)
        if(has[r][i]==x)
            return 1;
    return 0;
}

int main(){
    in>>n;
    for(int i=0;i<n;++i)
    {
        in>>a>>b;
        if(a==1)
            add(b);
        if(a==2)
            del(b);
        if(a==3)
            out<<show(b)<<'\n';
    }
    return 0;
}