Cod sursa(job #531413)

Utilizator raul1520Raul Andrei raul1520 Data 9 februarie 2011 17:16:47
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,x[805],i,j,k,mij,st,dr,a;
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&k);
		x[i]=k;
	}
	k=0;
	for(i=0;i<n-2;i++)
	{
		for(j=i+1;j<n-1;j++)
		{
			a=x[i]+x[j];
			st=j+1;
			dr=n-1;
			while(st<=dr)
			{
				mij=(st+dr)/2;
				if(x[mij]<=a)
				{
					k=k+(mij-j);
					st=mij+1;
				}
				else
				{
					dr=mij-1;
				}
			}
		}
	}
	printf("%d",k);
	return 0;
}