Cod sursa(job #883081)

Utilizator vgabi94Vaduva Gabriel vgabi94 Data 19 februarie 2013 18:32:22
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
#include <vector>
using namespace std;

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

const int P = 666013;
vector<int> H[P];

vector<int>::iterator find(const int &x)
{
    int list = x % P;
    vector<int>::iterator it;
    for (it = H[list].begin(); it != H[list].end(); ++it)
        if (*it == x) return it;
    return H[list].end();
}

int main()
{
    int N, c, x, list; in >> N;
    for (int i = 0; i < N; i++)
    {
        in >> c >> x;
        list = x % P;
        switch(c)
        {
            case 1: {
                if ( find(x) == H[list].end() )
                    H[list].push_back(x);
            } break;
            case 2: {
                vector<int>::iterator it;
                it = find(x);
                if ( it != H[list].end() ) H[list].erase(it);
            } break;
            case 3: {
                if ( find(x) != H[list].end() ) out << 1 << '\n';
                else out << 0 << '\n';
            } break;
        }
    }

    return 0;
}