Cod sursa(job #408742)

Utilizator liv182copoiu liviu liv182 Data 3 martie 2010 10:45:56
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,s=0;
int v[803];
int caut(int x)
{
	int i, pas=1<<9;
    for(i=0;pas;pas>>=1)
    {
        if(i+pas<=n && v[i+pas]<=x)
           i+=pas;
    }
	return i;
}
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	int i,j,k;
	for(int i=1;i<=n;++i)
		scanf("%d",&v[i]);
	sort(v+1,v+n+1);
	for(i=1;i<=n-2;++i)
		for(j=i+1;j<=n-1;++j)
		{
			k=caut(v[i]+v[j]);
			s+=k-j;
		}
	printf("%d",s);
	return 0;
}