Cod sursa(job #155123)

Utilizator za_wolfpalianos cristian za_wolf Data 11 martie 2008 19:08:52
Problema Triplete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 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));
		x[b][a>>3]=x[b][a>>3]|(1<<(a&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/3);

	return 0;
}