Cod sursa(job #2746634)

Utilizator danhHarangus Dan danh Data 28 aprilie 2021 10:36:36
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

const int MOD = 666013;

vector<int> v[MOD];

int find_x(int x) {
    int bucket = x % MOD;
    for(int i = 0; i < v[bucket].size(); i++) {
        if(v[bucket][i] == x) {
            return i;
        }
    }
    return -1;
}

void erase_x(int x) {
    int bucket = x % MOD;
    int pos = find_x(x);
    if(pos != -1) {
        swap(v[bucket][pos], v[bucket][v[bucket].size() - 1]);
        v[bucket].pop_back();
    }
}

void insert_x(int x) {
    int bucket = x % MOD;
    int pos = find_x(x);
    if(pos == -1) {
        v[bucket].push_back(x);
    }
}


int main() {
    int n, op, x;
    fin>>n;
    for(int i = 0; i < n; i++) {
        fin>>op>>x;
        if(op == 1) {
            insert_x(x);
        }
        else if(op == 2) {
            erase_x(x);
        }
        else {
            if(find_x(x) == -1) {
                fout<<0<<'\n';
            }
            else {
                fout<<1<<'\n';
            }
        }
    }
    fin.close();
    fout.close();
    return 0;
}