Nu aveti permisiuni pentru a descarca fisierul grader_test7.ok
Cod sursa(job #589024)
Utilizator | Data | 10 mai 2011 17:20:25 | |
---|---|---|---|
Problema | Triplete | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.8 kb |
#include<stdio.h>
unsigned int a[4100][130];
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)
{
if ((a[x][y>>5] & (1<<(y&31))) !=0 )
{
for (j=0; j<=n>>5; ++j)
{
b=(a[x][j] & a[y][j]);
s+=nrbiti(b);
}
}
}
printf("%d",s/3);
return 0;
}