Cod sursa(job #523699)

Utilizator cosmyoPaunel Cosmin cosmyo Data 18 ianuarie 2011 21:57:18
Problema Triplete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#define f first
#define s second
using namespace std;
const int N = 5000;
int n, m, NR , w[N * 2];
vector <int>  a[N];
pair<int, int> v[67000];

int main() {
	freopen("triplete.in", "r", stdin);
	freopen("triplete.out", "w", stdout);
	int i, x, y, r ,nr, j;
	scanf("%d %d", &n, &m);
	for(i = 1; i <= m; ++i) 
		scanf("%d %d", &x, &y),	v[i].f = x, v[i].s = y, a[x].push_back(y), a[y].push_back(x);
	
	for(i = 1; i <= m; ++i) {
		nr = 0;
		r = 0;
		for(j = 0; j < a[v[i].f].size(); ++j)
			w[++nr] = a[v[i].f][j];
		for(j = 0; j < a[v[i].s].size(); ++j)
			w[++nr] = a[v[i].s][j];
		sort(w + 1, w + nr + 1);
		for(j = 1; j < nr; ++j)
			if(w[j] == w[j + 1])
				++r;
		NR +=r;
	}
	printf("%d\n", NR/3);
	return 0;
}