Cod sursa(job #1465159)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 26 iulie 2015 17:06:35
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include<cstdio>
#include<vector>
#define p 666013
using namespace std;
vector<int> v[p];
int n;
vector<int>::iterator pozitie(int x){
    int lista=x%p;
    vector<int>::iterator it;
    for(it=v[lista].begin();it!=v[lista].end();it++)
        if(*it==x)
            return it;
    return v[lista].end();
}
void add(int x){
    int lista=x%p;
    if(pozitie(x)==v[lista].end())
        v[lista].push_back(x);
}
void remove(int x){
    int lista=x%p;
    vector<int>::iterator it=pozitie(x);
    if(it!=v[lista].end())
        v[lista].erase(it);
}
int query(int x){
    int lista=x%p;
    if(pozitie(x)==v[lista].end())
        return 0;
    return 1;
}
int main(){
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    int i,tip,x;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d%d",&tip,&x);
        if(tip==1)
            add(x);
        if(tip==2)
            remove(x);
        if(tip==3)
            printf("%d\n",query(x));
    }
    return 0;
}