Cod sursa(job #21416)

Utilizator Adriana_SAdriana Sperlea Adriana_S Data 23 februarie 2007 14:40:37
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
#include <bitset>

using namespace std;

const int N_MAX = 4096;
const int M_MAX = 65536;

bitset <N_MAX> G[N_MAX];
pair <int, int> mch[M_MAX];

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

	int N, M, x, y, i;
	
	scanf("%d %d\n", &N, &M);
	for (i = 0; i < M; i ++) {
		scanf("%d %d\n", &mch[i].first, &mch[i].second);
		G[mch[i].first - 1][mch[i].second - 1] = 1;
		G[mch[i].second - 1][mch[i].first - 1] = 1;
	}

	long long nr = 0;
	for (i = 0; i < M; i ++) {
		x = mch[i].first - 1, y = mch[i].second - 1;

		nr += (G[x] & G[y]).count();
	}
	printf("%lld\n", nr / 3);
	
	return 0;
}