Pagini recente » Cod sursa (job #136649) | Cod sursa (job #219562) | Cod sursa (job #2711551) | Cod sursa (job #2881873) | Cod sursa (job #447518)
Cod sursa(job #447518)
#include<stdio.h>
#include<string.h>
#define biti 16
int n,m,nrsol;
struct que
{
int x,y;
};
que q[70005];
int v[5003][351];
int sol;
char nrb[1000004];
int main ()
{
int a,b,i,j,ci;
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=(1<<16);i++)
{
ci=i;
while(ci)
{
nrb[i]+=ci&1;
ci/=2;
}
}
for(i=1;i<=m;i++)
{
scanf("%d%d",&q[i].x,&q[i].y);
a=q[i].x;
b=q[i].y;
v[a][b/biti]+=(1<<(b%biti));
v[b][a/biti]+=(1<<(a%biti));
}
for(i=1;i<=m;i++)
for(j=0;j<=n/biti;j++)
{
sol=(v[q[i].x][j]&v[q[i].y][j]);
nrsol+=nrb[sol];
}
printf("%d\n",nrsol/3);
return 0;
}