Cod sursa(job #210594)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 28 septembrie 2008 09:43:40
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define N 807
int n,v[N],i,j;
int cautare(int p, int u){
	int m;
	m=(p+u)/2;
	while(p<=u){
		if((v[m]<=v[i]+v[j]&&v[m+1]>v[i]+v[j]&&(i!=m!=j))||(v[m]<=v[i]+v[j]&&m==n-1&&(i!=m!=j)))
			return m;
		else
			if(v[m]<=v[i]+v[j] && v[m+1]<=v[i]+v[j]){
			p=m+1;
			m=(p+u)/2;
			}
			else{
				u=m-1;
				m=(p+u)/2;
			}
	}
	return 0;
}

int main(){
	int nr=0;
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<n;++i)
		scanf("%d",&v[i]);
	for(i=0;i<n-2;++i)
		for(j=i+1;j<n-1;++j)
			if(cautare(1,n))
				nr++;
	printf("%d\n",nr);
	fclose(stdin);
	fclose(stdout);
	return 0;
}