Cod sursa(job #513024)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 14 decembrie 2010 22:32:50
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#define maxd 802
#include<algorithm>
using namespace std;
int a[maxd],n,nr=0,s;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
void citire()
{
	int i;
	f>>n;
	for(i=1;i<=n;i++)
		f>>a[i];
}
int cautarebinara(int st,int dr,int x)
{
	int gasit=0,m,nr2;
	while(st<=dr&&gasit==0)
	{
		m=(st+dr)/2;
		if(a[m]<=x&&a[m+1]>x)
			return a[m];
		else
			if(a[m]>x)
				dr=m-1;
			else
				st=m+1;
	}
		return -1;
		
}
void calculeaza()
{
	int i,j,c;
	s=0;
	sort(a,a+n+1);
	a[n+1]=32000;
	//for(i=1;i<=n;i++)
	//	g<<a[i]<<" ";
	//g<<"\n";
	for(i=1;i<n-1;i++)
		for(j=i+1;j<=n-1;j++)
		{
			s=a[i]+a[j];
			c=cautarebinara(j+1,n,s);
			//else
				
			if(s>=c&&c!=-1)
				nr++;
			
			//g<<cautarebinara(j+1,n,s)<<" ";
	}
	
	
		
}
int main()
{
	citire();
	calculeaza();
	//g<<"\n";
	g<<nr;
	return 0;
}