Cod sursa(job #2355369)

Utilizator BogdanRazvanBogdan Razvan BogdanRazvan Data 26 februarie 2019 00:22:37
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
vector <int> a[MOD];
inline vector <int>::iterator Find(int nr)
{
    vector <int>::iterator it;
    int pos = nr % MOD;
    for(it = a[pos].begin(); it != a[pos].end(); ++it) if(*it == nr) return it;
    return a[pos].end();
}
void Add(int nr)
{
    int pos = nr % MOD;
    if(Find(nr) == a[pos].end()) a[pos].push_back(nr);
}
inline void Elim(int nr)
{
    int pos = nr % MOD;
    vector <int>::iterator it = Find(nr);
    if(Find(nr) != a[pos].end()) a[pos].erase(it);
}
int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) {
        int cod, nr;
        scanf("%d%d", &cod, &nr);
        if(cod == 1)
            Add(nr);
        else if(cod == 2)
            Elim(nr);
        else if(Find(nr) != a[nr % MOD].end()) printf("%d\n", 1);
        else printf("%d\n", 0);
    }
    return 0;
}