Pagini recente » Cod sursa (job #36889) | Cod sursa (job #2690092) | Cod sursa (job #2894947) | Cod sursa (job #903617) | Cod sursa (job #539165)
Cod sursa(job #539165)
#include<stdio.h>
FILE*f=fopen("triplete.in","r");
FILE*g=fopen("triplete.out","w");
int n,m,a,b,Byt[4100][140],i,aux,nr[65700],A[67000],B[67000],j,r;
int main () {
fscanf(f,"%d %d",&n,&m);
for ( i = 1 ; i <= m ; ++i ){
fscanf(f,"%d %d",&a,&b);
A[i] = a ; B[i] = b;
Byt[a][b / 30] |= (1 << ( b % 30 )) ;
Byt[b][a / 30] |= (1 << ( a % 30 )) ;
}
for ( i = 1 ; i <= 65535 ; ++i ){
aux = i;
while ( aux ){
if ( aux & 1 ){
++nr[i];
}
aux = aux >> 1;
}
}
for ( i = 1 ; i <= m ; ++i ){
for ( j = 0 ; j <= n / 30 ; ++j ){
aux = Byt[A[i]][j] & Byt[B[i]][j];
r += nr[aux >> 16 ] + nr[aux & 65535];
}
}
r /= 3;
fprintf(g,"%d\n",r);
fclose(f);
fclose(g);
return 0;
}