Cod sursa(job #799676)

Utilizator aLyZAlex Zaharia aLyZ Data 19 octombrie 2012 19:27:46
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include<cstdio>
#include<vector>
#define H 100009
using namespace std;
vector<int>a[H];

void add(int x)
{
    int r=x%H;
    vector<int>::iterator it;
    for(it=a[r].begin();it!=a[r].end();it++)
        if(*it==x) break;
    if(it==a[r].end())
        a[r].push_back(x);
}
void erase(int x)
{
    int r=x%H;
    vector<int>::iterator it;
    for(it=a[r].begin();it!=a[r].end();it++)
        if(*it==x) break;
    if(it!=a[r].end())
      {     *it=a[r].back();
            a[r].pop_back();
      }

}
void find(int x)
{   int r=x%H;
    vector<int>::iterator it;
    for(it=a[r].begin();it!=a[r].end();it++)
        if(*it==x) break;
    if(it!=a[r].end())
        printf("1\n");
    else
        printf("0\n");

}

int main()
{   int n,p,i,x;
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {   scanf("%d%d",&p,&x);
        switch(p)
        {
            case 1:
                    add(x);
                    break;
            case 2:
                    erase(x);
                    break;
            case 3:
                    find(x);
                    break;
        }
    }
    return 0;
}