Cod sursa(job #952479)

Utilizator primulDarie Sergiu primul Data 23 mai 2013 16:00:02
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<cstdio>
#include<vector>
using namespace std;
const int MOD = 100003;
int n,op,nr;
vector<int> Hash[MOD];
void Insert(int x)
{
    int r=x%MOD;
    vector<int>::iterator it;
    for(it=Hash[r].begin();it!=Hash[r].end();it++)
        if(*it==x) return;
    Hash[r].push_back(x);
}
void Delete(int x)
{
    int r=x%MOD;
    vector<int>::iterator it;
    for(it=Hash[r].begin();it!=Hash[r].end();it++)
        if(*it==x) break;
    if(it!=Hash[r].end()) {*it=Hash[r].back(); Hash[r].pop_back();}
}
void Find(int x)
{
    int r=x%MOD;
    vector<int>::iterator it;
    for(it=Hash[r].begin();it!=Hash[r].end();it++)
        if(*it==x) {printf("1\n"); return;}
    printf("0\n");
}
int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    for(;n;n--)
    {
        scanf("%d%d",&op,&nr);
        if(op==1) {Insert(nr); continue;}
        if(op==2) {Delete(nr); continue;}
        Find(nr);
    }
    return 0;
}