Cod sursa(job #874609)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 8 februarie 2013 23:50:53
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.28 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define MOD  666013

int N;
vector<int> T[MOD];

void insert_value(int value)
{
    int pos = value % MOD;
    vector<int>::iterator it;

    for(it = T[pos].begin(); it != T[pos].end(); ++it)
        if(*it == value)
            return;

    T[pos].push_back(value);
}

void remove_value(int value)
{
    int pos = value % MOD;
    vector<int>::iterator it;

    for(it = T[pos].begin(); it != T[pos].end(); ++it)
        if(*it == value) 
        {
            T[pos].erase(it);
            return;
        }
}

bool find_value(int value)
{
    int pos = value % MOD;
    vector<int>::iterator it;

    for(it = T[pos].begin(); it != T[pos].end(); ++it)
        if(*it == value)
            return true;

    return false;
}

int main(int argc, const char *argv[])
{
    int op, val;
    FILE *f = fopen("hashuri.in", "r");
    FILE *g = fopen("hashuri.out", "w");
    
    for(fscanf(f, "%d", &N); N; --N)
    {
        fscanf(f, "%d %d", &op, &val);
        printf("%d %d\n", op, val);
        if(op == 1)
            insert_value(val);
        else
            if(op == 2)
                remove_value(val);
            else
                fprintf(g, "%d\n", find_value(val));
            
    }

    fclose(f);
    fclose(g);

    return 0;
}