Cod sursa(job #152343)

Utilizator swift90Ionut Bogdanescu swift90 Data 9 martie 2008 13:11:36
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
const unsigned char put[]={128,64,32,16,8,4,2,1};
unsigned char nr[4100][515],poz;
struct muchii{
	int a,b;
};
muchii val[65600];
unsigned int rez;
int main(){
	freopen("triplete.in","r",stdin);
	freopen("triplete.out","w",stdout);
	int n,m,i,a,b,j,x;
	scanf("%d%d",&n,&m);
	for(i=0;i<m;++i){
		scanf("%d%d",&a,&b);
		val[i].a=a;
		val[i].b=b;
		nr[a][b>>3]=nr[a][b>>3] | put[b&7];
		nr[b][a>>3]=nr[b][a>>3] | put[a&7];
	}
	x=n>>3;
	for(i=0;i<m;++i){
		for(j=0;j<=x;++j){
			poz=nr[val[i].a][j] & nr[val[i].b][j];
			while(poz){
				poz=poz & (poz-1);
				++rez;
			}
		}
	}
	
	printf("%u\n",rez/3);
	fclose(stdin);
	fclose(stdout);
	return 0;
}