Cod sursa(job #3158434)

Utilizator ililogIlinca ililog Data 18 octombrie 2023 18:51:31
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
using namespace std;
#include<iostream>
#include<fstream>
#include<vector>

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

#define MOD 666013

int n, op, x;
vector<int> G[MOD];

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

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

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

int main() {
    fin >> n;
    
    for (int i = 1; i<=n; i++) {
        fin >> op >> x;
        if (op == 1) {
            insert_value(x);
        } else if (op == 2) {
            erase_value(x);
        } else {
            vector<int>::iterator it = find_value(x);
            if (it != G[x%MOD].end()) {
                fout << "1\n";
            } else {
                fout << "0\n";
            }
        }
    }
    
    return 0;
}