Pagini recente » Cod sursa (job #1265137) | Cod sursa (job #648975) | Cod sursa (job #1650450) | Cod sursa (job #2361909) | Cod sursa (job #153202)
Cod sursa(job #153202)
#include<stdio.h>
int n, m, pt[16], x1, x2, x, y, nr, i, j, k, use[4095];
char v[4095][513], z;
inline int max(int a, int b){
if (a > b)
return a;
return b;
}
int main()
{
freopen("triplete.in", "rt", stdin);
freopen("triplete.out", "wt", stdout);
pt[0] = 1;
for (i = 1; i <= 15; i ++)
pt[i] = 2*pt[i-1];
scanf("%d%d", &n, &m);
for (i = 1; i <= m; i ++){
scanf("%d%d", &x, &y);
x1 = (y-1) / 8;
x2 = (y-1) % 8;
v[x][x1] |= pt[x2];
use[x] = max(use[x], x1);
}
for (i = 1; i < n; i ++)
for (j = i+1; j <= n; j ++){
int tr = max(use[i], use[j]);
for (k = 0; k <= tr; k ++){
z = v[i][k] & v[j][k];
while (z){
z &= z-1;
nr ++;
}
}
}
printf("%d\n", nr);
return 0;
}