Cod sursa(job #1167527)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 5 aprilie 2014 13:42:04
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
long long int array[4096][64];
int nr_biti(long long int x)
{
	int count = 0;
	while(x)
	{
		x=x&(x-1);
		count++;
	}
	return count;
}
int main ()
{
	std::ifstream fin("triplete.in");
	std::ofstream fout("triplete.out");
	int n, m;
	int a, b;

	fin>>n>>m;
		
	for(int i=0;i<m;i++)
	{
		fin>>a>>b;		
		a--;b--;
		array[a][b>>6] |= 1<<(b%64);
		array[b][a>>6] |= 1<<(a%64);
	}

	int count=0; 

	for(int i=0;i<n;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			if(array[i][j>>6]&(1<<j%64))								
			{
				for(int k=0;k<64;k++)
				{
					count+=nr_biti(array[i][k] & array[j][k]);
				}					
			}	
		}
	}		

	fout<<count/3;

	return 0;
}