Cod sursa(job #1153614)

Utilizator usermeBogdan Cretu userme Data 25 martie 2014 16:53:00
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <cstdio>
#include <vector>

using namespace std;

FILE*f=fopen("hashuri.in","r");
FILE*h=fopen("hashuri.out","w");

const int M=1000019;

vector<int> v[M];

inline vector<int>::iterator find_value(int x){
    int c=x%M;
    vector<int>::iterator it;
    for ( it=v[c].begin();it!=v[c].end();++it )
        if ( *it==x )
            return it;
    return v[c].end();
}

void insert(int x){
    int c=x%M;
    if ( find_value(x)==v[c].end() )
        v[c].push_back(x);
}

void remove(int x){
    int c=x%M;
    if ( find_value(x)!=v[c].end() )
        v[c].erase(find_value(x));
}

void search(int x){
    int c=x%M;
    if ( find_value(x)!=v[c].end() )
        fprintf(h,"1\n");
    else fprintf(h,"0\n");
}

int main(){
    int n;
    fscanf(f,"%d",&n);
    while ( n ){
        int a,b;
        --n;
        fscanf(f,"%d%d",&a,&b);
        if ( a==1 )insert(b);
        if ( a==2 )remove(b);
        if ( a==3 )search(b);
    }
    return 0;
}