Cod sursa(job #2058224)

Utilizator CammieCamelia Lazar Cammie Data 5 noiembrie 2017 12:29:08
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <fstream>
#include <vector>

#define mod1 666013
#define MAXN 1000005

using namespace std;

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

vector <int> G[MAXN];

int nr;

inline int Query(int val) {
    nr = val % mod1;

    for (auto j : G[nr]) {
        if (j == val) {
            return 1;
        }
    }
    return 0;
}

inline void Add(int val) {
    nr = val % mod1;

    if (Query(val))
        return;

    G[nr].push_back(val);
}

inline void Remove(int val) {
    nr = val % mod1;

    //num = G[nr][G[nr].size()];

    for (auto j : G[nr]) {
        if (j == val) {
            swap(G[nr][G[nr].size()], j);
            G[nr].pop_back();
            break;
        }
    }
}

inline void Read() {
    int n, tip, val;

    fin >> n;

    for (int i = 1; i <= n; i++) {
        fin >> tip >> val;

        switch (tip) {
        case 1 :
            Add(val);
            break;
        case 2 :
            Remove(val);
            break;
        case 3 :
            fout << Query(val) << "\n";
            break;
        default :
            break;
        }
    }
}

int main () {
    Read();

    fin.close(); fout.close(); return 0;
}