Cod sursa(job #1451400)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 16 iunie 2015 22:09:07
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

#define inFile "hashuri.in"
#define outFile "hashuri.out"
#define MOD 1000007

ifstream in(inFile);
ofstream out(outFile);

vector < int > H[MOD];

int find_val(int key) {
    for(int i = 0; i < H[key % MOD].size(); i++)
        if(H[key % MOD][i] == key)
            return i;
    return -1;
}

void insert_val(int key) {
    if(find_val(key) == -1)
        H[key % MOD].push_back(key);
}

void delete_val(int key) {
    int index = find_val(key);
    if(index > -1) {
        swap(H[key % MOD][index], H[key % MOD][H[key % MOD].size() - 1]);
        H[key % MOD].pop_back();
    }
}

int main() {
    int n, op, x;

    in >> n;
    while(n--) {
        in >> op >> x;
        if(op == 1)
            insert_val(x);
        else if(op == 2)
            delete_val(x);
        else if(find_val(x) > -1)
            out << "1\n";
        else
            out << "0\n";
    }

    return 0;
}