Cod sursa(job #1678180)

Utilizator AdrianGotcaAdrian Gotca AdrianGotca Data 7 aprilie 2016 08:41:48
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#define MOD 999983
#include <vector>

using namespace std;

int n,op,x;
void add(int);
int cauta(int);
void sterge(int);
vector <int> V[MOD];
int main(){
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    for (int i=0;i<n;i++){
        scanf("%d%d",&op,&x);
        if (op==1){
            add(x);
        }
        if (op==2){
            sterge(x);
        }
        if (op==3){
            if (cauta(x)!=V[x%MOD].size()){
                printf("1\n");
            }
            else {
                printf("0\n");
            }
        }
    }
}

void add(int x){
    int lista=x%MOD;
    if (cauta(x)==V[lista].size()){
        V[lista].push_back(x);
    }
}

void sterge(int x){
    int lista=x%MOD;
    if (V[lista].size()!=cauta(x)){
        V[lista].erase(V[lista].begin()+cauta(x));
    }
}

int cauta(int x){
    int lista=x%MOD;
    for (int i=0;i<V[lista].size();i++){
        if (V[lista][i]==x){
            return i;
        }
    }
    return V[lista].size();
}