Cod sursa(job #1023577)

Utilizator thewildnathNathan Wildenberg thewildnath Data 7 noiembrie 2013 12:37:14
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include<stdio.h>
#include<vector>
using namespace std;

#define MOD 666013

vector <int> v[666020];

inline int find(int x)
{
    int i,list=x%MOD;
    for(i=0;i<v[list].size();++i)
        if(v[list][i]==x)
            return 1;
    return 0;
}

inline void del(int x)
{
    int i,list=x%MOD;
    for(i=0;i<v[list].size();++i)
        if(v[list][i]==x)
            v[list].erase(v[list].begin()+i-1);
}

inline void insert(int x)
{
    int i,list=x%MOD;
    v[list].push_back(x);
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    int n,op,x,ok;
    scanf("%d",&n);

    while(n--)
    {
        scanf("%d%d",&op,&x);
        ok=0;
        if(op==1)
        {
            ok=find(x);
            if(!ok)
                insert(x);
        }
        else if(op==2)
        {
            ok=find(x);
            if(ok)
                del(x);
        }
        else
        {
            ok=find(x);
            printf("%d\n",ok);
        }
    }

    return 0;
}