Cod sursa(job #1076276)

Utilizator handz.FMI Andrei Tanasescu handz. Data 9 ianuarie 2014 23:52:19
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

#define prime 666013
vector <int> h[prime];
int n;

int cauta(int val)
{
    unsigned i; int zone;
    zone=val%prime;

    for(i=0; i<h[zone].size() ;i++)
        if(h[zone][i]==val) return i;
    return -1;
}

void insereaza(int val)
{
    int zone;
    if(cauta(val)==-1)
    {
        zone=val%prime;
        h[zone].push_back(val);
    }
}

void sterge(int val)
{
    int poz,zone;
    poz=cauta(val);

    if(poz!=-1)
    {
        zone=val%prime;
        h[zone].erase(h[zone].begin()+poz);
    }
}

int main()
{
    f>>n;
    int i,a,x,rez;
    for(i=1; i<=n ;i++)
    {
        f>>a; f>>x;
        switch(a)
        {
            case 1: insereaza(x);
            break;

            case 2: sterge(x);
            break;

            case 3: rez=cauta(x);
                    if(rez!=-1) g<<1<<endl;
                    else g<<0<<endl;
            break;
        }
    }
    return 0;
}