Cod sursa(job #2029455)

Utilizator MaligMamaliga cu smantana Malig Data 30 septembrie 2017 10:33:06
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

#define ll long long
#define ull unsigned long long
#define pb push_back
#define mp make_pair
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");

const int NMax = 1e5 + 5;
const int inf = 1e9 + 5;
const int mod = 100003;
using zint = short;

int N,M;
vector<int> h[mod];

bool check(int);
void add(int);
void rem(int);

int main() {
    in>>M;
    while (M--) {
        int tip,x;
        in>>tip>>x;

        if (tip == 1) {
            if (!check(x)) {
                add(x);
            }
        }
        else if (tip == 2) {
            rem(x);
        }
        else {
            out<<check(x)<<'\n';
        }
    }

    in.close();out.close();
    return 0;
}

#define idx val%mod
bool check(int val) {
    for (int nr : h[idx]) {
        if (val == nr) {
            return true;
        }
    }

    return false;
}

void add(int val) {
    h[idx].pb(val);
}

void rem(int val) {
    for (int& nr : h[idx]) {
        if (nr != val) {
            continue;
        }
        swap(nr,h[idx][h[idx].size()-1]);
        h[idx].pop_back();
        return;
    }
}