Cod sursa(job #2555179)

Utilizator bmarcuBogdan Marcu bmarcu Data 23 februarie 2020 19:33:54
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <bits/stdc++.h>
#define prim 99991

using namespace std;

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

vector<int> v[1000001];

int poz (int n) {
    return (n % prim);
}

void adaug (int n) {
    int ok = 0;
    for (int i = 0; i < v[poz(n)].size(); i++) {
        if (v[poz(n)][i] == n)
            ok = 1;
    }
    if (ok == 0)
        v[poz(n)].push_back(n);
}

void sterg (int n) {
    int ok = 0;
    int pos;
    for (int i = 0; i < v[poz(n)].size(); i++) {
        if (v[poz(n)][i] == n) {
            ok = 1;
            pos = i;
        }
    }
    if (ok == 1) {
        swap(v[poz(n)][pos], v[poz(n)][v[poz(n)].size() - 1]);
        v[poz(n)].pop_back();
    }

}

int caut (int n) {
    for (int i = 0; i < v[poz(n)].size(); i++) {
        if (v[poz(n)][i] == n)
            return 1;
    }
}

int main () {
    int n;
    fin >> n;

    while (n) {
        int c, nr;
        fin >> c >> nr;
        if (c == 1)
            adaug(nr);
        else if (c == 2)
            sterg(nr);
        else
            fout << caut(nr) << endl;
        n--;
    }
}