Pagini recente » Cod sursa (job #1287750) | Cod sursa (job #2287952) | Cod sursa (job #2647238) | Cod sursa (job #270370) | Cod sursa (job #154555)
Cod sursa(job #154555)
#include <stdio.h>
#define MAXN 5000
#define MAXNb 300
#define MAXV 70000
struct prieteni
{
int a,b;
};
prieteni v[MAXN+2];
int m,n,V[MAXN+2][MAXNb+2];
int c[MAXV+1];
int rez=0;
int k[20];
int main()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
int i,j,t,z,a,b;
k[0]=1;
for (i=1; i<17; i++)
k[i]=k[i-1]<<1;
for(i = 1; i < MAXV+1; i++)
c[i] = c[i>>1]+(i&1);
scanf("%d%d",&n,&m);
for (i=0; i<m; i++)
{
scanf("%d%d",&a,&b);
v[i].a=a;
v[i].b=b;
V[a][b/16]+=k[b%16];
V[b][a/16]+=k[a%16];
}
t=n/16+1;
for (i=0; i<m; i++)
{
a=v[i].a;
b=v[i].b;
for (j=0; j<t; j++)
{
z= V[a][j] & V[b][j];
rez+=c[z];
}
}
printf("%d\n",rez/3);
fclose(stdin);
fclose(stdout);
return 0;
}