Cod sursa(job #1099634)

Utilizator gabrielvGabriel Vanca gabrielv Data 6 februarie 2014 00:08:58
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include<cstdio>
#include<vector>

using namespace std;

#define MAX 600043

vector <int> G[MAX];

vector<int>::iterator search(int x, int mod)
{
    //int *it;
    vector<int>::iterator it;
    for(it=G[mod].begin();it!=G[mod].end();it++)
        if(*it==x)
            return it;
    //return -1;
    return G[mod].end();
}

void insert(int x)
{
    vector<int>::iterator it;
    int mod=x%MAX;
    it=search(x,mod);
    if(it==G[mod].end())
        G[mod].push_back(x);
}

void remove(int x)
{
    vector<int>::iterator it;
    int mod=x%MAX;
    it=search(x,mod);
    if(it!=G[mod].end())
        G[mod].erase(it);
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);

    int n,op,x;
    scanf("%d",&n);

    while(n--)
    {
        scanf("%d %d",&op,&x);
        switch(op)
        {
            case 1: { insert(x); break;}
            case 2: { remove(x); break;}
            case 3: { vector<int>::iterator it; it=search(x,x%MAX); if(it!=G[x%MAX].end()) printf("1\n"); else printf ("0\n"); break;}
        }
    }

    return 0;
}