Pagini recente » Sport | Cod sursa (job #965718) | Profil alexandru92 | Diferente pentru documentatie/textile intre reviziile 107 si 74 | Cod sursa (job #133064)
Cod sursa(job #133064)
#include <stdio.h>
int n, m;
long contor;
typedef struct
{
int x, y;
} muchie;
muchie a[66000];
int v[4100][4100];
int max (int x, int y)
{
return x > y ? x : y;
}
void citire()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
int i;
scanf("%d %d",&n, &m);
for (i = 1; i <= m; i++)
{
scanf("%d %d", &a[i].x, &a[i].y);
v[a[i].x][a[i].y] = v[a[i].y][a[i].x] = 1;
if (v[a[i].x][0] < a[i].y) v[a[i].x][0] = a[i].y;
if (v[a[i].y][0] < a[i].x) v[a[i].y][0] = a[i].x;
}
}
int main()
{
citire();
int i, j, k;
for (i = 1; i <= m; i++)
{
k = max(v[a[i].x][0],v[a[i].y][0]);
for(j = 1; j <= k; j++) contor += (v[a[i].x][j] & v[a[i].y][j]);
}
contor /= 3;
printf("%ld\n",contor);
return 0;
}