Cod sursa(job #574493)

Utilizator osiceanu_paulOsiceanu paul osiceanu_paul Data 7 aprilie 2011 11:16:40
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int n,nr=0,x[805],k;

int cautbin(int a)
{
	int pas=1<<9,i;
	for(i=0;pas;pas/=2)
		if (i+pas<=n && x[i+pas]<=a)
			i+=pas;
	return i;
}

int main()
{
	int i,j;
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&x[i]);
	sort(x+1,x+1+n);
	for(i=1;i<=n-1;i++)
		for(j=i+1;j<=n;j++)
		{
			k=cautbin(x[i]+x[j]);
			nr=nr+(k-j);
		}
	printf("%d",nr);
}