Cod sursa(job #2058220)

Utilizator CammieCamelia Lazar Cammie Data 5 noiembrie 2017 12:20:20
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 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 void Add(int val) {
    nr = val % mod1;

    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 Query(int val) {
    nr = val % mod1;

    for (auto j : G[nr]) {
        if (j == val) {
            fout << 1 << "\n";
            return;
        }
    }
    fout << 0 << "\n";
}

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 :
            Query(val);
            break;
        default :
            break;
        }
    }
}

int main () {
    Read();

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