Cod sursa(job #857145)

Utilizator mvcl3Marian Iacob mvcl3 Data 17 ianuarie 2013 13:46:20
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include<fstream>
#include<vector>
using namespace std;

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

const int MOD = 20003;
const int NMAX = 100000;
int m, t, nr;
vector<int> v[NMAX];

inline void insert(int);
inline void erase(int);
inline bool search(int);

int main()
{
    f>>m;

    for(int i = 1; i <= m; ++i)
    {
        f>>t>>nr;
        switch(t)
        {
            case 1 : { insert(nr); break; }
            case 2 : { erase(nr); break; }
            case 3 : { g<<search(nr)<<'\n'; break; }
        }
    }
}

inline void insert(int k)
{
    vector<int> :: iterator it;

    for(it = v[k % MOD].begin(); it != v[k % MOD].end(); ++it)
        if((*it) == k) return;

    v[k % MOD].push_back(k);
}

inline void erase(int k)
{
    for(int i = 0; i < v[k % MOD].size(); ++i)
        if(v[k % MOD][i] == k)
        {
            v[k % MOD][i] = v[k % MOD].back();
            v[k % MOD].pop_back();
            return;
        }
}

inline bool search(int k)
{
    vector<int> :: iterator it;
    for(it = v[k % MOD].begin(); it != v[k % MOD].end(); ++it)
        if((*it) == k) return 1;

    return 0;
}