Cod sursa(job #1811824)

Utilizator MgMnPopescu Matei MgMn Data 21 noiembrie 2016 17:15:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
#include <fstream>
#include <vector>
#define P 666013
using namespace std;

vector<int> G[P];

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

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

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

int main()
{
    ifstream in("hashuri.in");
    ofstream out("hashuri.out");
    int n, i, t, x;
    in>>n;
    for(i=1; i<=n; i++){
            in>>t>>x;
            switch(t){
                case 1:
                    insert_value(x);
                    break;
                case 2:
                    erase_value(x);
                    break;
                case 3:
                    if(find_value( x) != G[x%P].end())
                        out<<1<<'\n';
                    else
                        out<<0<<'\n';
                    break;
            }
    }
    in.close();
    out.close();
    return 0;
}