Cod sursa(job #81788)

Utilizator peanutzAndrei Homorodean peanutz Data 4 septembrie 2007 15:50:15
Problema Triplete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <set>

using namespace std;

#define NMAX 4099
#define MMAX 65540

int res;
int n, m;
set<int> a[NMAX];
int x[MMAX], y[MMAX];

void read()
{
	int i;
	scanf("%d%d", &n, &m);
	for(i = 1; i <= m; ++i)
	{
		scanf("%d%d", &x[i], &y[i]);
		a[x[i]].insert(y[i]);
		a[y[i]].insert(x[i]);
	}
}

int main()
{
	freopen("triplete.in", "r", stdin);
	freopen("triplete.out", "w", stdout);

	read();

	int i, j;
	short aux1, aux2;
	for(i = 1; i <= m; ++i)
	{
		for(j = 1; j <= n; ++j)
		{
			aux1 = (a[j].find(x[i]) != a[j].end()); 
			aux2 = (a[j].find(y[i]) != a[j].end());
				
			if(aux1 && aux2)
				++res;
		}
		a[x[i]].erase(y[i]);
		a[y[i]].erase(x[i]);
	}
	printf("%d\n", res);
	
	return 0;
}