Cod sursa(job #1023566)

Utilizator thewildnathNathan Wildenberg thewildnath Data 7 noiembrie 2013 12:22:20
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include<stdio.h>
#include<vector>
using namespace std;

#define MOD1 666013
#define MOD2 333017

vector <int> v[666020];

inline int find(int x1,int x2)
{
    int i;
    for(i=1;i<=v[x1].size();++i)
        if(v[x1][i]=x2)
            return 1;
    return 0;
}

inline void del(int x1,int x2)
{
    int i;
    for(i=1;i<=v[x1].size();++i)
        if(v[x1][i]==x2)
            v[x1].erase(v[x1].begin()+i-1);
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    int n,op,x1,x2,ok;
    scanf("%d",&n);

    while(n--)
    {
        scanf("%d%d",&op,&x1);
        x2=x1;
        x1=x1%MOD1;
        x2=x2%MOD2;
        ok=0;
        if(op==1)
        {
            ok=find(x1,x2);
            if(!ok)
                v[x1].push_back(x2);
        }
        else if(op==2)
        {
            ok=find(x1,x2);
            if(ok)
                del(x1,x2);
        }
        else
        {
            ok=find(x1,x2);
            printf("%d\n",ok);
        }
    }

    return 0;
}