Cod sursa(job #462937)

Utilizator darrenRares Buhai darren Data 14 iunie 2010 11:15:47
Problema Triplete Scor 0
Compilator cpp Status done
Runda biti2 Marime 0.7 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[p2][p1 / 32] |= (1 << (p1 % 32));
	}
	//for (int i = 1; i <= n; ++i)
	//	a[i][i / 32] |= (1 << (i % 32));
	
	for (int i = 1; i < n; ++i)
		for (int j = i + 1; j <= n; ++j)
		{
			int count = 0;
			for (int k = 0; k < 130; ++k)
			{
				int aux = a[i][k] & a[j][k];
				while (aux)
				{
					++count;
					aux &= aux - 1;
				}
			}
			tot += count;
		}
		
	fout << tot / 3;
}