Cod sursa(job #798510)

Utilizator vlad96Vlad Zuga vlad96 Data 16 octombrie 2012 18:34:55
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define mod 666013

int n;
vector <int> g[mod];

inline vector<int>::iterator find_value(int x)
{
    int list = x%mod;
    vector<int>::iterator it;

    for (it = g[list].begin(); it != g[list].end(); ++it)
        if ( *it == x )
            return it;
    return g[list].end();
}

inline void insert(int x)
{
    int list = x%mod;
    if (find_value(x) == g[list].end())
        g[list].push_back(x);
}

inline void erase(int x)
{
    int list = x%mod;
    vector<int>::iterator it = find_value(x);

    if (it != g[list].end())
        g[list].erase(it);
}


int main()
{
    int op, x;

    FILE *fis = fopen ("hashuri.in", "r");
    FILE *fis2 = fopen ("hashuri.out", "w");

    for (fscanf(fis, "%d", &n); n; --n)
    {
        fscanf(fis, "%d %d", &op, &x);
        if ( op == 1 )
        {
            insert(x);
            continue;
        }
        if (op == 2)
        {
            erase(x);
            continue;
        }
        fprintf(fis2, "%d\n", find_value(x) != g[x % mod].end());
    }

    return 0;
}