Cod sursa(job #1895499)

Utilizator cristicretancristi cretan cristicretan Data 27 februarie 2017 23:44:36
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <bits/stdc++.h>
#define NMax 1000001
#define mod 666013
using namespace std;

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

int foo, n, x;
vector<int> G[NMax];

inline vector<int>::iterator find_value(int x)
{
    int nr = x % mod;
    vector<int>:: iterator it;
    for(it = G[nr].begin(); it != G[nr].end(); ++it)
        if(*it == x) return it;
    return G[nr].end();
}

inline void erase_value(int x)
{
    int nr = x % mod;
    vector<int>::iterator it = find_value(x);
    if(it != G[nr].end()) G[nr].erase(it);
}

inline void insert_value(int x)
{
    int nr = x % mod;
    if(find_value(x) == G[nr].end()) G[nr].push_back(x);
}

int main()
{
    f >> n;
    for(int i = 1; i <= n; ++i)
    {
        f >> foo >> x;
        if(foo == 1) insert_value(x); /// insert
        if(foo == 2) erase_value(x); /// stergere
        if(foo == 3 && find_value(x) != G[x % mod].end()) g << 1 << '\n';
        else if(foo == 3)g << 0 << '\n';
    }
    return 0;
}