Cod sursa(job #2199863)

Utilizator bigmixerVictor Purice bigmixer Data 29 aprilie 2018 13:20:06
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#pragma GCC optimize("03")
#include <bits/stdc++.h>
#define mod 666013
#define asd vector <int> :: iterator

using namespace std;

ifstream in("hashuri.in");
ofstream out("hashuri.out");

int n,t,x;
vector <int> v[666123];

asd find(int x){
    int hsh=x%mod;
    for(asd it = v[hsh].begin(); it != v[hsh].end(); ++it)
        if(*it == x)
            return it;
    return v[hsh].end();
}

void bagain(int x){
    if(find(x) == v[x%mod].end())
        v[x%mod].push_back(x);
}

void scoate(int x){
    auto it = find(x);
    if(it!=v[x%mod].end())
        v[x%mod].erase(it);
}

int main(){
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> t >> x;
        if(t==1) bagain(x);
        else if(t==2) scoate(x);
        else cout << (find(x) != v[x % mod].end()) << '\n';
    }
}