Cod sursa(job #152328)

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