Cod sursa(job #1371492)

Utilizator somuBanil Ardej somu Data 3 martie 2015 21:49:12
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <fstream>
#include <vector>
#define mod 666013

using namespace std;

int n;
vector <int> H[mod];

void add(int value) {
    int x = value % mod;
    bool ok = false;
    for (int i = 0; i < H[x].size(); i++)
        if (H[x][i] == value) {
            ok = true;
            break;
        }
    if (!ok)
        H[x].push_back(value);
}

void sterge(int value) {
    int x = value % mod;
    for (vector <int> ::iterator it = H[x].begin(); it != H[x].end(); ++it)
        if (*it == value) {
            H[x].erase(it);
            break;
        }
}
         
bool query(int value) {
    int x = value % mod;
    for (int i = 0; i < H[x].size(); i++)
        if (H[x][i] == value)
            return 1;
    return 0;
}

int main() {
    
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");
    
    fin >> n;
    
    for (int i = 1; i <= n; i++) {
        int op, x;
        fin >> op >> x;
        switch (op) {
            case 1:
                add(x);
                break;
            case 2:
                sterge(x);
                break;
            case 3:
                fout << query(x) << "\n";
                break;
        }
    }
    
    fin.close();
    fout.close();
    
    return 0;
}