Cod sursa(job #1088896)

Utilizator EpictetStamatin Cristian Epictet Data 20 ianuarie 2014 22:18:44
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <vector>
#include <fstream>
using namespace std;

#define Mod 666013

ifstream f("hashuri.in");
ofstream g("hashuri.out");

int N, tip, val;

vector < int > V[Mod];

inline void insereaza(int x)  {
    int linia = x % Mod;

    for(int j = 0; j < V[linia].size(); ++j)
        if(V[linia][j] == x)    return ;

    V[linia].push_back(x);
}

inline void sterge(int x) {
    int linia = x % Mod;

    for(int j = 0; j < V[linia].size(); ++j)
        if(V[linia][j] == x) {
            V[linia][j] = V[linia][V[linia].size() - 1];
            V[linia].pop_back();
        }
}

inline bool cauta(int x) {
    int linia = x % Mod;

    for(int j = 0; j < V[linia].size(); ++j)
        if(V[linia][j] == x)    return 1;

    return 0;
}

int main() {
    f >> N;

    for(int i = 1; i <= N; ++i) {
        f >> tip >> val;

        if(tip == 1) {
            insereaza(val);
            continue;
        }

        if(tip == 2) {
            sterge(val);
            continue;
        }

        g << cauta(val) << '\n';
    }

    g.close();
    return 0;
}