Pagini recente » Cod sursa (job #1728407) | Cod sursa (job #906384) | Cod sursa (job #1771986) | Cod sursa (job #2316539) | Cod sursa (job #8371)
Cod sursa(job #8371)
#include <cstdio>
using namespace std;
const char iname[] = "triplete.in";
const char oname[] = "triplete.out";
#define MAX_N 4096
#define MAX_M 65536
int A[MAX_N][257];
int L[MAX_M][2];
int cnt[1 << 16];
int main(void) {
freopen(iname, "r", stdin);
int N;
int M;
int i, x, y, k, Res = 0;
for (scanf("%d %d", & N, & M), i = 0; i < M; ++i) {
scanf("%d %d", & x, & y);
A[x][y >> 4] |= (1 << (y & 15));
L[i][0] = x;
L[i][1] = y;
}
for (int byte = 0; byte < 1 << 16; ++byte)
for (i = 0; i < 16; ++i)
cnt[byte] += ((byte & (1 << i)) > 0);
for (i = 0; i < M; ++i) {
x = L[i][0];
y = L[i][1];
for (k = 0; k < 257; ++k)
Res += cnt[A[x][k] & A[y][k]];
}
freopen(oname, "w", stdout);
printf("%d\n", Res);
return 0;
}