Cod sursa(job #495912)

Utilizator theodora_maneaManea Theodora Maria theodora_manea Data 27 octombrie 2010 10:48:22
Problema Hashuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>

struct point {
	int inf;
	point *leg;
};
point *h[676014];
int n,i,nr,op,n1,x,nr3;

void insert(int x,int nr) {
	point *p;
	p=new point;
	p->inf=nr;
	p->leg=h[x];
	h[x]=p;
}

void cauta(point *p,int nr, int ok) {
	point *u;
	if (p==NULL) {
		if (ok) printf("0\n");
		return;
	}
	if (p->inf==nr) {
		p->inf=0;
		if (ok) printf("1\n");
		return;
	}
	while (p!=NULL && p->inf!=nr) {
		u=p;
		p=p->leg;
	}
    if (p) {
        if (ok) printf("1\n");
        p->inf=0;
	}
    else 
        if (ok) printf("0\n");		
}

int main () {
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	scanf("%d",&n);
	n1=676013;
	nr3=0;
	for (i=1; i<=n; i++) {
		scanf("%d%d",&op,&nr);
		x=nr%n1;
		if (op==1) insert(x,nr);
		else
			if (op==2) 
				cauta(h[x],nr,0); 
				else {
					cauta(h[x],nr,1);
					nr3++;
				}
	}
	//printf("%d\n",nr3);
    return 0;
}