Cod sursa(job #239917)

Utilizator ilincaSorescu Ilinca ilinca Data 6 ianuarie 2009 10:07:54
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#include <algorithm>

#define nmax 805 

using namespace std;

int n, f [30005], v [nmax];


void scan ()
{
	int i;
	scanf ("%d", &n);
	for (i=1; i<=n; ++i)
		scanf ("%d", &v [i]);
}

void init ()
{
	int i, j, ci;
	for (i=1; i<=n; ++i)
	{
		ci=i;
		while (v [i] == v [i+1])
			++i;
		for (j=v [ci]; j<v [i+1]; ++j)
			f [j]=i;
	}		
}

int nrtri ()
{
	int a, b, num=0;
	for (a=1; a<=v [n]; ++a)
		for (b=a+1; b<=v [n]; ++b)
			num+=f [a+b]-f [b-1];
	return num;		
}

int main ()
{
	freopen ("nrtri.in", "r", stdin);
	freopen ("nrtri.out", "w", stdout);
	scan ();
	sort (v+1, v+n);
	init ();
	printf ("%d\n", nrtri ());
	return 0;
}