Cod sursa(job #799343)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 18 octombrie 2012 19:41:22
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include<cstdio>
#include<vector>
#define H 100009
using namespace std;
vector<int> a[H];
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");
}
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();
    }
}
int main()
{
    int n,i,x,c;
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d %d",&c,&x);
        switch(c)
        {
            case 1:
            add(x);
            break;
            case 2:
            erase(x);
            break;
            default:
            find(x);
        }
    }
    return 0;
}