Cod sursa(job #190253)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 21 mai 2008 12:20:32
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>


struct relatie{
	int x,y;
} b[65536];

long a[4096][128];
long n,m,i,j,x,y,nr;


int main()
{
	
	freopen("triplete.in","r",stdin);
	freopen("triplete.out","w",stdout);

	scanf("%ld %ld\n",&n,&m);
	for (i=0; i<=m; ++i)
	{
		scanf("%ld %ld",&x,&y);
		a[x][y >> 5] |= (1 << (y & 31));
		a[y][x >> 5] |= (1 << (x & 31));
		b[i].x=x; b[i].y=y;
	}

	for (i=1, nr=0; i<=m; ++i)
		for (j=0; j<=n >> 5; ++j)
		{
			x=a[b[i].x][j] & a[b[i].y][j];
			if (x)
				do {
					x=x & (x-1);
					++nr;}
				while (!x);
		}

	nr/=3;
	printf("%ld\n", nr);
	fclose(stdin); fclose(stdout);
	return 0;
 }