Cod sursa(job #2222417)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 16 iulie 2018 23:14:07
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int mod1 = 1007, mod2 = 1003;
vector < int > H[mod1][mod2];
void Add(int x);
void Erase(int x);
bool Query(int x);

int main() {

    int cer,x;
    int t;
    fin >> t;
    for ( ; t > 0; --t) {
        fin >> cer >> x;
        if ( cer == 1)
            Add(x);
        else
            if ( cer == 2)
                Erase(x);
        else
            fout << Query(x) << "\n";
    }
}


void Add(int x) {

    int i = x % mod1, j = x % mod2;
    H[i][j].push_back(x);
}

void Erase(int x) {

    int i = x % mod1, j = x % mod2;
    for ( size_t w = 0; w < H[i][j].size(); ++w)
            if ( H[i][j][w] == x) {
                H[i][j].erase(H[i][j].begin() + w);
                return;
            }
}

bool Query(int x) {

    int i = x % mod1, j = x % mod2;
    for ( size_t w = 0; w < H[i][j].size(); ++w)
            if ( H[i][j][w] == x) {
                return true;
            }
    return false;
}