Cod sursa(job #390727)

Utilizator joli94Apostol Adrian Alexandru joli94 Data 4 februarie 2010 13:48:44
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,v[801];
int caut(int a)
{
	int pas=1<<9,i;
	for(i=0; pas; pas>>=1)
	{
		if ( i+pas<=n && v[i+pas]<=a)
			i+=pas;
	}
	return i;
}
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	int i,rez,k,j;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
	}
	sort(v+1,v+n+1);
	rez=0;
	for(i=1;i<=n;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			k=caut(v[i]+v[j]);
			if(k>j)
				rez+=k-j;
		}
	}
	printf("%d",rez);
	return 0;
}