Pagini recente » Cod sursa (job #723467) | Cod sursa (job #1563834) | Cod sursa (job #678500) | Cod sursa (job #2320856) | Cod sursa (job #1611733)
#include<stdio.h>
const int M = 65537, N = 4097, P = 32;
int mat[N][N / P], a[M], b[M];
int biti (int x)
{
int sol = 0;
while (x)
{
sol++;
x = (x & (x - 1));
}
return sol;
}
int main ()
{
FILE *in, *out;
in = fopen ("triplete.in", "r");
out = fopen ("triplete.out", "w");
int n, m;
fscanf (in, "%d%d", &n, &m);
int i, aux;
for (i = 1; i <= m; i++)
{
fscanf (in, "%d%d", &a[i], &b[i]);
if (a[i] > b[i])
{
aux = a[i];
a[i] = b[i];
b[i] = aux;
}
mat[a[i]][b[i] / P] += 1 << (b[i] % P);
}
int j, s = 0, c = n / P;
for (i = 1; i <= m; i++)
for (j = 0; j <= c; j++)
s += biti (mat[a[i]][j] & mat[b[i]][j]);
fprintf (out, "%d", s);
return 0;
}