Cod sursa(job #863234)

Utilizator assa98Andrei Stanciu assa98 Data 23 ianuarie 2013 17:04:19
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <cstdio>
#include <vector>
#define sp 666013
using namespace std;

vector <int> v[700000];
int n;

int cauta(int b)
{
    if(v[b%sp].empty())
        return 0;
    vector<int>::iterator it;
    for(it=v[b%sp].begin();it!=v[b%sp].end();it++)
    {
        if(*it==b)
            return (it-v[b%sp].begin()+1);
    }
    return 0;
}

void rm(int i,int b)
{
    i--;
    for(i;i<v[b%sp].size()-1;i++)
        v[b%sp][i]=v[b%sp][i+1];
    v[b%sp].pop_back();
}


int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int a,b;
        scanf("%d%d",&a,&b);
        if(a==1)
        {
            if(!cauta(b))
            {
                v[b%sp].push_back(b);
            }
        }
        else if(a==2)
        {
            int zb=cauta(b);
            if(zb)
            {
                rm(zb,b);
            }
        }
        else
            printf("%d\n",(cauta(b)!=0));
    }
    return 0;
}