Cod sursa(job #133064)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 7 februarie 2008 13:50:21
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#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;
}