Cod sursa(job #1997183)

Utilizator MaligMamaliga cu smantana Malig Data 3 iulie 2017 16:32:03
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");

#define pb push_back
const int NMax = 16 + 5;
const int mod = 100003;

int N;
vector<int> v[mod];

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

int main() {
    in>>N;

    while (N--) {
        int tip,val;
        in>>tip>>val;

        switch (tip) {
        case 1: {
            if (!have(val)) {
                add(val);
            }
            break;
        }
        case 2: {
            rem(val);

            break;
        }
        case 3: {
            out<<have(val)<<'\n';

            break;
        }
        }
    }

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

#define idx val % mod

bool have(int val) {

    for (auto x : v[idx]) {
        if (x == val) {
            return 1;
        }
    }
    return 0;
}

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

void rem(int val) {

    for (int k=0;k < (int)v[idx].size();++k) {
        if (v[idx][k] != val) {
            continue;
        }

        swap(v[idx][k],v[idx][v[idx].size()-1]);
        v[idx].pop_back();
        break;
    }
}