Cod sursa(job #2199860)

Utilizator bigmixerVictor Purice bigmixer Data 29 aprilie 2018 13:10:30
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.38 kb
#pragma GCC optimize("O3")
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#include<bits/stdc++.h>
#define ll long long
#define sz size
#define pb push_back
#define er erase
#define in insert
#define fr first
#define sc second
#define mp make_pair
#define pi pair
#define _ ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
#define rc(s) return cout<<s,0
using namespace std;
const int mnod=666013;
vector<int>::iterator it;

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

vector<int>::iterator findnum(int y){
     it=sir[y%mnod].begin();
     while(it!=sir[y%mnod].end()){
        if(*it==y) return it;
        else it++;
     }
     return  sir[y%mnod].end();
}
void inauntru(int y){
     if(findnum(y)==sir[y%mnod].end()) sir[y%mnod].push_back(y);
}
void scoate(int y){
     if(findnum(y)!=sir[y%mnod].end()) sir[y%mnod].erase(it);
}

int main(){
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> x >> t;
        if(x==1){
            inauntru(t);
            continue;
        }
        if(x==2){
            scoate(t);
            continue;
        }
        if(x==3){
            cout<<(findnum(t) != sir[t%mnod].end())<<endl;

        }
    }



}