Cod sursa(job #1836906)

Utilizator cami9719Camelia Hanes cami9719 Data 28 decembrie 2016 20:15:14
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
#define mod 666013
int N;
vector<int> G[mod];

inline vector<int>::iterator find_value(int x){
int list = x % mod;

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

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

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

int main()
{
    int op, x;
    ifstream f("hashuri.in");
    ofstream g("hashuri.out");
    for ( int i = 1; i <= N; ++i ){
        cin >> op >> x;
        if ( op == 1 ){ insert_value(x); continue;}
        if ( op == 2 ){ erase_value(x); continue;}
        g << (find_value(x) != G[x%mod].end()) << "\n";
    }
    f.close();
    g.close();
    return 0;
}