Cod sursa(job #1051938)

Utilizator CatalinaRaduCatalina Elena Radu CatalinaRadu Data 10 decembrie 2013 19:02:27
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <fstream>
#include <vector>

#define nr_zone 666013

using namespace std;

vector<int> Hash[nr_zone];

int search1(vector<int> Hash[nr_zone], int val)
{
    int zona=val%nr_zone;
    for(int i=0;i<Hash[zona].size();++i)
        if(Hash[zona][i]==val)
           return i;
    return -1;
}

void add1 (vector<int> Hash[nr_zone], int val)
{
    int zona=val%nr_zone;
    if (search1(Hash,val)!=-1)
        return;
    else
        Hash[zona].push_back(val);
    return;
}

void erase1 (vector<int> Hash[nr_zone], int val)
{
    int poz=search1(Hash,val);
    if (poz!=-1)
    {
        int zona=val%nr_zone;
        Hash[zona][poz]=Hash[zona].back();
        Hash[zona].pop_back();
    }
}
int main()
{
    ifstream f ("hashuri.in");
    ofstream g ("hashuri.out");
    long n,i,c,x;
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>c>>x;
        if(c==1)
            add1(Hash,x);
        else
            if(c==2)
            erase1(Hash,x);
        else
            {
                if(search1(Hash,x)==-1)
                   g<<0<<'\n';
                   else
                    g<<1<<'\n';
            }
    }
    f.close();
    g.close();
    return 0;
}