Cod sursa(job #354780)

Utilizator radu_cppRadu Voroneanu radu_cpp Data 9 octombrie 2009 13:37:12
Problema Numarare triunghiuri Scor 45
Compilator cpp Status done
Runda cautb1 Marime 0.54 kb
#include <stdio.h>

int a[30010];
int v[810];
int i,j,nr,aux,n,aux2;

int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for (i=1; i<=n; a[v[i]]++, i++)
		scanf("%d",&v[i]);
	for (i=30000; i>=0; i--)
		a[i]+=a[i+1];
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++)
			if (i!=j){
				aux=(v[i]<v[j])? v[j]-v[i] : v[i]-v[j];
				aux2=v[i]+v[j];
				nr+=a[aux]-a[aux2+1];
				if (v[i]>=aux && v[i]<=aux2) nr--;
				if (v[j]>=aux && v[i]<=aux2) nr--;
			}
	printf("%d",nr/6);
	return 0;
}