Cod sursa(job #373492)

Utilizator klamathixMihai Calancea klamathix Data 13 decembrie 2009 22:07:56
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>
#include<algorithm>
#define maxn 805
#define val 30100
using namespace std;

int i , j , k , maxs , v[maxn] , nr[val] , hash[val] , n , result;

int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	
	scanf("%d",&n);
	
	for( i = 1 ; i <= n ; ++i ){
		scanf("%d",&v[i]),
		hash[v[i]]++;
		if ( v[i] > maxs ) maxs = v[i];
	}
		
	sort ( v + 1 , v + n + 1 ) ;
	

	
	for( i = 1; i <= maxs ; ++i )
		nr[i] = nr[i - 1] + hash[i]; 

	

	
	for( i = 1 ; i <= n ; ++i )
		for( j = i + 1 ; j <= n ; ++j )
			if ( v[i] + v[j] <= val && nr[v[i] + v[j]] > nr[v[j]] ) 
				result += nr[v[i] + v[j]] - nr[v[j]] ;
		
	printf("%d\n",result);
	
return 0;
}