Cod sursa(job #549152)

Utilizator funkydvdIancu David Traian funkydvd Data 8 martie 2011 10:31:11
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#include<algorithm>
#include<bitset>
#include<vector>
using namespace std;
const char IN[] = {"triplete.in"};
const char OUT[] = {"triplete.out"};
const int NMAX = 4100;
const int MMAX = 70005;
#define f first
#define s second
#define pentru(i, a, b) 	for(unsigned int i = a ; i <= b ; i++)
unsigned int N, M, REZ;
bitset<NMAX> b[NMAX];
pair<unsigned int, unsigned int> m[MMAX];
int main()
{
	freopen(IN, "r", stdin);
	freopen(OUT, "w", stdout);	
	pentru(i, 0, NMAX - 1)	b[i].reset();
	scanf("%u%u", &N, &M);
	pentru(i, 1, M)
	{
		scanf("%u%u", &m[i].f, &m[i].s);
		if(m[i].f > m[i].s)	swap(m[i].f, m[i].s);
		b[m[i].f][m[i].s] = 1;
	}
	pentru(i, 1, M)
		REZ += (b[m[i].f] & b[m[i].s]).count();
	printf("%u\n", REZ);
	return 0;
}