Cod sursa(job #394757)

Utilizator toniobFMI - Barbalau Antonio toniob Data 11 februarie 2010 15:46:27
Problema Numarare triunghiuri Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;

ifstream in ( "nrtri.in" );
ofstream out ( "nrtri.out" );

const int K = 3;
int N, v [ 800 ], sol [ 5 ], cnt;

bool comp ( int a, int b )
{
	return a > b;
}

void procesare ()
{
	int aux [ 4 ];
	aux [ 1 ] = v [ sol [ 1 ] ];
	aux [ 2 ] = v [ sol [ 2 ] ];
	aux [ 3 ] = v [ sol [ 3 ] ];
	sort ( aux + 1, aux + 1 + K, comp );
	
	if ( aux [ 1 ] <= aux [ 2 ] + aux [ 3 ] )
		++cnt;
}

void bkt ( int p )
{
	if ( p == K + 1 )
	{
		procesare ();
		return;
	}
	for ( int i = sol [ p - 1 ] + 1; i <= N; ++i )
	{
		sol [ p ] = i;
		bkt ( p + 1 );
	}
}

int main ()
{
	in >> N;
	for ( int i = 1; i <= N; ++i )
		in >> v [ i ];
	
	bkt ( 1 );
	
	out << cnt;
	
	return 0;
}