Cod sursa(job #1549444)

Utilizator kiwiIonescu Maria kiwi Data 12 decembrie 2015 12:39:02
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
int h[1000010],v[3][1000010],i,op,n,k,x;
const int p=666013;
ifstream f("hashuri.in");
ofstream g("hashuri.out");

int gasit(int x)
{
   int y=x%p,t,poz=0;
   t=h[y];
    while(t && !poz)
    {
       if(v[1][t]==x)poz=t;
       else
        t=v[2][t];
    }
    return poz;
}

void adaug(int x,int k)
{
    int i,y;
  if(gasit(x))return;
  y=x%p;
  v[1][++k]=x;
  v[2][k]=h[y];
  h[y]=k;
}

int sterg(int x)
{
    int y=gasit(x);
if(y)
    v[1][y]=-1;

}


int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>op>>x;
        switch(op)
        {
            case 1:adaug(x,k);break;
            case 2:sterg(x);break;
            case 3:g<<gasit(x)<<'\n';break;
        }
    }

    return 0;
}