Cod sursa(job #475277)

Utilizator theodora_maneaManea Theodora Maria theodora_manea Data 6 august 2010 14:09:32
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#include <string.h>

int n,m,sol,a[1<<16],b[1<<16],i,j,x,y;
char nr[1<<16];
int v[1<<12][1<<8];

void biti() {
	for (i=1; i<=2*(1<<12); i++) 
		nr[i]=nr[i/2]+(i&1);
}
		

int main () {
	freopen("triplete.in","r",stdin);
	freopen("triplete.out","w",stdout);
	scanf("%d%d",&n,&m);
	biti();
	for (i=1; i<=m; i++) {
		scanf("%d%d",&a[i],&b[i]);
		x=a[i];
		y=b[i];
		v[x][y/16]+=(1<<(y%16));
		v[y][x/16]+=(1<<(x%16));
	}
	
	for (i=1; i<=m; i++)
		for (j=0;j<=n/16;j++)
            sol+=nr[v[a[i]][j]&v[b[i]][j]];
		
	printf("%d\n",sol/3);
	return 0;
}