Cod sursa(job #2199852)

Utilizator bigmixerVictor Purice bigmixer Data 29 aprilie 2018 12:56:25
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 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=3e4+625;
vector<int>::iterator it;

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

vector<int>::iterator findnum(int x,int y){
     it=sir[x].begin();
     while(it!=sir[x].end()){
        if(*it==y) return it;
        else it++;
     }
     return  sir[x].end();
}


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



}