Cod sursa(job #267220)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 26 februarie 2009 22:04:40
Problema Numarare triunghiuri Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>

int n,v[800],nr=0;

int poz(int l,int r)
{	int d=0,t;
	while(l<r)
	{	if(v[l]>v[r])
		{	t=v[l]; v[l]=v[r]; v[r]=t;
			d=1-d;
		}
		l+=d;r-=1-d;
	}
	return l;
}

void qsort(int l,int r)
{	int k;
	if(l<r)
	{	k=poz(l,r);
		qsort(l,k-1);
		qsort(k+1,r);
	}
}

int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=0;i<n;i++) scanf("%d",&v[i]);
	qsort(0,n-1);
	
	for(int i=0;i<n-2;i++)
		for(int j=i+1;j<n-1;j++)
			for(int k=j+1;k<n;k++)
				if(v[i]+v[j]>=v[k])
				{	nr++;
					//printf("%d %d %d\n",i+1,j+1,k+1);
				}
	
	printf("%d",nr);
	return 0;
}