Cod sursa(job #2773746)

Utilizator GhiuzanuEdward Ghiuzan Ghiuzanu Data 8 septembrie 2021 15:54:10
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#define mod 1000000007
using namespace std;

ifstream fin ("hashuri.in");
ofstream fout ("hashuri.out");
vector<int>v[1000001];

int find(int x){
    int l = x % mod;
    int lg = v[l].size();
    for (int i = 0; i < lg; ++i) {
        if (v[l][i] == x){
            return 1;
        }
    }
    return 0;
}

void add(int x){
    int l = x % mod;
    if (!find(x))
        v[l].push_back(x);
}

void pop(int x){
    int l = x % mod;
    int lg = v[l].size();
    for (int i = 0; i < lg; ++i) {
        if (v[l][i] == x){
            v[l][i] = v[l][lg - 1];
            v[l].pop_back();
            break;
        }
    }
}

void finder(int x){
    fout<<find(x)<<endl;
}

int main() {
    int n, x, y;
    fin>>n;
    for (int i = 0; i < n; ++i) {
        fin>>y>>x;
        if (y == 1) add(x);
        else if (y == 2) pop(x);
        else finder(x);
    }
    return 0;
}