Cod sursa(job #155108)

Utilizator za_wolfpalianos cristian za_wolf Data 11 martie 2008 18:57:56
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#define NMAX 4100
int w[257],y[NMAX],z[NMAX],B,a,b,n,m,i,j,k,s,x[NMAX][NMAX/8];
int main()
{
	freopen("triplete.in","r",stdin);
	freopen("triplete.out","w",stdout);
	scanf("%d%d",&n,&m);
	for (i=1;i<=m;i++)
	{
		scanf("%d%d",&a,&b);
		x[a][b>>3]=x[a][b>>3]|(1<<(b&7));
		y[i]=a;
		z[i]=b;
	}
	k=n>>3;
	for (i=0;i<=256;i++)
	{
		j=i;

		while (j)
		{
			if	(j&1)
				w[i]++;
			j=j>>1;
		}
	}
	for (i=1;i<=m;i++)
	{
		for (j=0;j<=k;j++)
			if (j!=y[i]&&j!=z[i])
			{
				s+=w[x[y[i]][j]&x[z[i]][j]];

			}
	}
	printf("%d\n",s);


	return 0;
}