Cod sursa(job #2747814)

Utilizator ioana2008vIoana Velniceru ioana2008v Data 29 aprilie 2021 17:50:19
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fi("hashuri.in");
ofstream fo("hashuri.out");

const int p = 666013;
vector<int> h[p];
int n, op, x;

int search_val(int x){
    int nr = x % p;
    int l = h[nr].size();
    for (int i = 0; i < l; i++){
        if (h[nr][i] == x){
            return 1;
        }
    }
    return 0;
}

void add_val(int x){
    int nr = x % p;
    if (!search_val(x)){
        h[nr].push_back(x);
    }
}

void delete_val(int x){
    int nr = x % p;
    int l = h[nr].size();
    for (int i = 0; i < l; i++){
        if (h[nr][i] == x){
            h[nr][i] = h[nr][l - 1];
            h[nr].pop_back();
            break;
        }
    }
}

int main()
{
    fi >> n;
    for (int i = 0; i < n; i++){
        fi >> op >> x;
        if (op == 1){
            add_val(x);
        } else if (op == 2){
            delete_val(x);
        } else {
            fo << search_val(x) << '\n';
        }
    }
    return 0;
}