Cod sursa(job #29462)

Utilizator gigi_becaliGigi Becali gigi_becali Data 9 martie 2007 14:19:23
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <stdio.h>
#define maxn 997
struct nod { int x; nod *next;};

nod *H[maxn];

int hash(int val)
{
	
	return val%maxn;
}

int insert(int val)
{
	int poz=hash(val);
	nod *p=new nod;
	p->x=val;
	p->next=H[poz];
	H[poz]=p;
}

int find(int val)
{
	int poz=hash(val);
	for(nod *p=H[poz];p;p=p->next)
		if(p->x==val) return 1;
	return 0;
}
int erase(int val)
{
	int poz=hash(val);
	nod *p=H[poz];
	if(p->x==val)
	{
		nod *r=p;
		p=p->next;
		H[poz]=p;
		delete r;
		return 1;
	}
	for(;p->next;p=p->next)
		if(p->next->x==val)
		{
			nod *r=p->next;
			p->next=p->next->next;
			delete r;
			return 1; 
		}
	return 0;
}

		


int main()
{
	insert(35);
	insert(87);
	insert(23);
	printf("%d %d\n", find(35), find(36));
	printf("%d %d\n", find(87), find(88));
	printf("%d %d\n", find(23), find(25));
	erase(35);
	printf("%d\n", find(35));
	for(int i=1;i<=1000;i++)
		for(int j=1;j<=1000;j++) insert(i+j);
	
	for(int i=1;i<=1000;i++)
		for(int j=1;j<=1000;j++) find(i+j),erase(i+j);
	return 0;
}