Pagini recente » Cod sursa (job #3289733) | Rating sofia nitoi (classic_game) | Cod sursa (job #3282885) | Cod sursa (job #3243406) | Cod sursa (job #8302)
Cod sursa(job #8302)
#include <stdio.h>
#include <vector>
#define MaxN 4096
#define pow(x) (1<<(x))
using namespace std;
int n, m;
unsigned a[MaxN][MaxN/32];
vector <int> vec[MaxN];
inline int IsSet(int x, int y)
{
return (a[x][y/32] & pow(y&31));
}
int main()
{
freopen("triplete.in", "r", stdin);
freopen("triplete.out", "w", stdout);
int i,j,k;
scanf("%d %d", &n, &m);
for (k=0; k<m; k++){
scanf("%d %d", &i, &j);
if (i<j) vec[i].push_back(j); else
vec[j].push_back(i);
if (i<j) a[i][j/32]|=pow(j&31); else
a[j][i/32]|=pow(i&31);
}
int sol=0;
for (i=0; i<n; i++)
for (j=0; j<vec[i].size(); j++){
int v=vec[i][j];
for (k=0; k<vec[v].size(); k++)
if (IsSet(i, vec[v][k])) sol++;
}
printf("%d\n", sol);
return 0;
}