Cod sursa(job #96394)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 1 noiembrie 2007 12:05:05
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
#include<stdlib.h>
int v[801];
int cauta(int n,int k){
	int p,u,m;
	p=1;u=n-1;
	while (v[p]<v[u]){
		m=(p+u)/2;
		if(k<=v[u])
			u=m;
		else
			p=m+1;
	}
	//if(v[u]>n)
		//return p-1;
	return u;//p
}
inline int compara (const void * a, const void * b){
  return ( *(int*)a - *(int*)b );
}
int main(){
	int n,v[801],i,j,s=0;
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for (i=0;i<n;++i)
		scanf("%d",&v[i]);
	qsort (v, n, sizeof(int), compara);
	for (i=0;i<n-2;++i)
		for (j=i+1;j<n-1;++j){
			s+=n-cauta(n,v[i]+v[j]);
		}
	printf("%d",s);
	return 0;
}