Cod sursa(job #1045899)

Utilizator mumyrevine12Jinga Cosmin mumyrevine12 Data 2 decembrie 2013 11:51:08
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.32 kb
#include<fstream>
#include<iostream>
using namespace std;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

const long BUCKETS=666013;

struct nod{
    long inf;
    nod *urm;
};
nod *hashtable[BUCKETS];

void ad(nod *&v,long n){
    if (!v){
        v=new nod;
        v->inf=n;
        v->urm=0;
    }
    else{
        nod *c=new nod;
        c->urm=v;
        c->inf=n;
        v=c;
    }
}
void st(nod *&v,long n){
    nod *p=v,*d;

    while(p && p->inf!=n){
        d=p;
        p=p->urm;
    }
    if(p){
        if(p==v){
            v=v->urm;
            delete p;
        }
        else{
            d->urm=p->urm;
            delete p;
        }
    }
}
void fd(nod *v,long n){
    for(;v && v->inf!=n;v=v->urm);
    if(v)   fout<<1<<"\n";
    else    fout<<0<<"\n";
}

int main(){
    long val,n,k,i;
    short com;

    fin>>n;
    for(i=0;i<n;++i){
        fin>>com;
        fin>>val;
        k=val % BUCKETS;
      if(com==1)
            {
                ad(hashtable[k],val);
                break;
            }else if(com==2)
              {
                st(hashtable[k],val);
                break;
              }
           else{
                fd(hashtable[k],val);
                break;
               }
        }

    return 0;
}