Cod sursa(job #1746538)

Utilizator andreea_dumitrascuDumitrascu Andreea andreea_dumitrascu Data 23 august 2016 15:24:02
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.3 kb
#include <cstdio>
#include <vector>
#define ref 666013

using namespace std;

vector<int> v[ref+5];
vector<int>::iterator it;

int l,c,nr;

void add(int n)
{
    int k=n%ref;
    for(it=v[k].begin();it!=v[k].end();it++)
        if (*it==n) return;
    v[k].push_back(n);
}

void del(int n)
{
    int k=n%ref;
    for(it=v[k].begin();it!=v[k].end();it++)
        if (*it==n){v[k].erase(it);return;}
}

void ask(int n)
{
    int k=n%ref;
    for(it=v[k].begin();it!=v[k].end();it++)
        if (*it==n) {printf("1\n");return;}
    printf("0\n");
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&l);
    for(int i=1;i<=l;i++)
    {
        scanf("%d%d",&c,&nr);
        if (c==1) add(nr);
        else
        if (c==2) del(nr);
        else ask(nr);
    }
    return 0;
}

/*int n,cz,r,c;
long long nr;
bool a[44722][44722];

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    for(;n;n--)
    {
        scanf("%d%lld",&cz,&nr);
        r=nr%44723;
        c=nr/44723;
        if(cz==1)
            a[r][c]=1;
        else
        if(cz==2)
            a[r][c]=0;
        else
            printf("%d\n",a[r][c]);
    }
    return 0;
}*/