Cod sursa(job #395513)

Utilizator mihai995mihai995 mihai995 Data 13 februarie 2010 13:14:07
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
int v[800];
int search(int x,int y,int c)
{
	int m;
	while (x<y)
	{
		m=(x+y)/2;
		if (v[x]>=c) return x-1;
		if (v[m]==c) return m;
		if (v[x]==c) return x;
		if (v[y]==c) return y;
		if (m<c) x=m+1;
		if (m>c) y=m-1;
	}
	return 0;
}
int comp(const void *a,const void *b)
{
	return *(int*)a-*(int*)b;
}
int main()
{
	ifstream f("nrtri.in");
	ofstream o("nrtri.out");
	int n,i,j,k;
	long count=0;
	f>>n;
	for (i=1;i<=n;i++)
		f>>v[i];
	qsort(v+1,n,sizeof(int),comp);
	for (i=1;i<n-1;i++)
 		for(j=i+1;j<n;j++)
			for (k=n;k>=j;k--)
				if (v[k]<=v[i]+v[j]) {count +=k-j;break;}
	o<<count;
	return 0;
}