Cod sursa(job #864750)

Utilizator thewildnathNathan Wildenberg thewildnath Data 25 ianuarie 2013 18:26:51
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
/*#include<stdio.h>
#include<algorithm>
using namespace std;
int v[801];
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	int n,i,j,l,sol=0;
	scanf("%d",&n);
	for(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++)
			for(l=j+1;l<=n;l++)
			{
				if(v[i]+v[j]>=v[l]&&v[i]+v[l]>=v[j]&&v[j]+v[l]>=v[j])
					sol++;
				break;
			}
	printf("%d\n",sol);
	return 0;
}*/
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[801];
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	int n,i,j,h,aux,a,b,c,mod=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	sort(v+1,v+n+1);
	for(i=1;i<=n-2;i++)
	{
		a=v[i];
		for(j=i+1;j<=n-1;j++)
		{
			b=v[j];
			for(h=j+1;h<=n;h++)
			{
				c=v[h];
				
				if(a<=b+c&&b<=a+c&&c<=a+b)
					mod++;
				else
					if(c>a+b)
						break;
			}
		}
	}
	printf("%d\n",mod);
	return 0;
}