Cod sursa(job #1047288)

Utilizator medeea0507Medeea Lazea medeea0507 Data 4 decembrie 2013 10:19:50
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <vector>
#include <stdlib.h>
#include <fstream>

using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
#define prime 666013
vector<int>H[prime];

int cauta(vector<int>H[prime],int val)
{
    int rest=val%prime;
    int s=H[rest].size(),i;
    for (i=0;i<s;i++)
        if (H[rest][i]==val)
           return i;
    return -1;
}

int este(vector<int>H[prime],int val)
{
    if (cauta(H,val)==-1)
        return 0;
    else
        return 1;
}

void inserare(vector<int>H[prime],int val)
{
    int rest=val%prime;
    if (cauta(H,val)>=0)
        return;
    H[rest].push_back(val);
}

void stergere(vector<int>H[prime],int val)
{
    int rest=val%prime;
    int cine=cauta(H,val);
    if (cine==-1)
        return;
    H[rest][cine]=H[rest].back();
    H[rest].pop_back();
}

int main()
{
    int i,x,n,op;
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>op>>x;
        if (op==1)
            inserare(H,x);
        if (op==2)
            stergere(H,x);
        if (op==3)
            fout<<este(H,x)<<endl;
    }
        return 0;
}