Cod sursa(job #1898587)

Utilizator danyvsDan Castan danyvs Data 2 martie 2017 09:44:08
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MOD = 666013;

vector < int > H[MOD];

vector < int > :: iterator find_value(int x) {
    int cnt = x % MOD;
    for (vector < int > :: iterator it = H[cnt].begin(); it != H[cnt].end(); ++ it)
        if (*it == x)
            return it;
    return H[cnt].end();
}

void insert_value(int x) {
    int cnt = x % MOD;
    if (find_value(x) == H[cnt].end())
        H[x % MOD].push_back(x);
}

void erase_value(int x) {
    int cnt = x % MOD;
    vector < int > :: iterator it = find_value(x);
    if (it != H[cnt].end())
        H[cnt].erase(it);
}

int main() {
    int n;
    fin >> n;
    for (int i = 0; i < n; ++ i) {
        int type, temp;
        fin >> type >> temp;
        switch (type) {
            case 1:
                insert_value(temp);
                break;
            case 2:
                erase_value(temp);
                break;
            case 3:
                fout << (find_value(temp) != H[temp % MOD].end() ? 1 : 0) << "\n";
                break;
        }
    }
    fin.close();
    fout.close();
    return 0;
}