Pagini recente » Cod sursa (job #2119206) | Cod sursa (job #1361961) | Cod sursa (job #2954758) | Cod sursa (job #359955) | Cod sursa (job #154605)
Cod sursa(job #154605)
#include <stdio.h>
#define MAXN 5000
#define WTF 300
#define MAXV 70000
struct friends
{
int a, b;
};
friends v[MAXN];
int V[MAXN][WTF];
int p2[20];
int count[MAXV];
int main()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
int i=0,j=0,m=0,n=0,a=0,b=0,t=0,rez=0,z=0;
p2[0]=1;
for (i=1; i<20; i++)
p2[i]=p2[i-1]<<1;
for (i=1; i<MAXV; i++)
count[i]=count[i>>1]+ (i & 1);
scanf("%d%d",&n,&m);
for (i=0; i<m; i++)
{
scanf("%d%d",&v[i].a,&v[i].b);
V[v[i].a][v[i].b>>4]=V[v[i].a][v[i].b>>4] | p2[v[i].b & 15];
V[v[i].b][v[i].a>>4]=V[v[i].b][v[i].a>>4] | p2[v[i].a & 15];
}
t=n/16;
t++;
for (i=0; i<m; i++)
{
a=v[i].a;
b=v[i].b;
for (j=0; j<t; j++)
{
z=0;
z=V[a][j] & V[b][j];
rez+=count[z];
}
}
rez/=3;
printf("%d\n",rez);
fclose(stdin);
fclose(stdout);
return 0;
}