Cod sursa(job #462929)

Utilizator darrenRares Buhai darren Data 14 iunie 2010 11:10:22
Problema Triplete Scor 40
Compilator cpp Status done
Runda biti2 Marime 0.64 kb
#include<fstream>
using namespace std;

int n, m;
int a[4098][130];
int nok;
long long tot;

int main()
{
	ifstream fin("triplete.in");
	ofstream fout("triplete.out");
	fin >> n >> m;
	
	int p1, p2;
	for (int i = 1; i <= m; ++i)
	{
		fin >> p1 >> p2;
		a[p1][p2 / 32] |= (1 << (p2 % 32));
		//a[p1][p1 / 32] |= (1 << (p1 % 32));
		a[p2][p1 / 32] |= (1 << (p1 % 32));
	}
	for (int i = 1; i <= n; ++i)
	{
		for (int j = 1; j < n; ++j)
			if (a[i][j / 32] & (1 << (j % 32)))
				for (int k = j + 1; k <= n; ++k)
					if ((a[i][k / 32] & (1 << (k % 32))) && (a[j][k / 32] & (1 << ( k % 32))))
						++tot;
	}
	
	fout << tot / 3;
}