Cod sursa(job #1076249)

Utilizator handz.FMI Andrei Tanasescu handz. Data 9 ianuarie 2014 23:32:43
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 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)<0)
    {
        zone=val%prime;
        h[zone].push_back(val);
        /*
        n=h[zone].size();
        h[zone][n]=val*/
    }
}

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

    if(poz!=-1)
    {
        zone=val%prime;
        h[zone][poz]=h[zone].back();
        h[zone].pop_back();
    }
}

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;
}