Cod sursa(job #431083)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 31 martie 2010 17:32:04
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<stdio.h>
FILE *f,*g;
long n,i,modul,c[680000],fin[680000],t[3][4000],x,poz,nr;
int op,ok;
int main()
{ f=fopen("hashuri.in","r"); g=fopen("hashuri.out","w");
  fscanf(f,"%ld",&n); modul=666013;
  for(i=1;i<=n;i++)
   { fscanf(f,"%d%ld",&op,&x);
     if(op==1)
	  { poz=x%modul;
	    if(c[poz]==0) { nr++; c[poz]=fin[poz]=nr; t[1][nr]=x; }
		else { nr++; t[2][fin[poz]]=nr; t[1][nr]=x; fin[poz]=nr; }
	  }
	 else if(op==2)
	  { poz=x%modul; poz=c[poz];
	    while(poz)
		 { if(t[1][poz]==x) { t[1][poz]=0; poz=0; }
           poz=t[2][poz];
		 }
	  }
	 else if(op==3)
	  { poz=x%modul; poz=c[poz]; ok=0;
	    while(poz)
		 { if(t[1][poz]==x) { ok=1; poz=0; }
		   poz=t[2][poz];
		 }
	    fprintf(g,"%d\n",ok);
	  }
   }
  fclose(g);
  return 0;
}