Pagini recente » Istoria paginii runda/simulare_oji_13_03_2023 | Istoria paginii monthly-2014/runda-2/clasament | Istoria paginii template/fmi-no-stress-5/footer | Cod sursa (job #235087) | Cod sursa (job #589021)
Cod sursa(job #589021)
#include<stdio.h>
unsigned int a[4100][4100];
int n,m,x,y,b,s;
int nrbiti(int n)
{
int nr=0;
while (n!=0)
{
nr++;
n&=(n-1);
}
return nr;
}
int main()
{
int i,j;
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1; i<=m; ++i)
{
scanf("%d%d",&x,&y);
a[x][y>>5] |= (1<<(y&(31)));
a[y][x>>5] |= (1<<(x&(31)));
}
/*
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; j++)
if ( (a[i][j>>5] & (1<<(j&31))) !=0 )
printf("1 ");
else
printf("0 ");
printf("\n");
}
*/
for (x=1; x<=n; ++x)
for (y=x+1; y<=n; ++y)
{
for (j=0; j<=n>>5; ++j)
{
b=(a[x][j] & a[y][j]);
s+=nrbiti(b);
}
}
printf("%d",s/3);
return 0;
}