Cod sursa(job #298748)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 6 aprilie 2009 12:53:12
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>

int n,v[1000];
int i,j,total = 0;

int cauta(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]) || (v[m]<=v[i]+v[j] && m==n-1))
		  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()
{
  
    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 = 0; j < n-2; j++)
          total += cauta(1,n)-j;
    printf("%d\n",total); 
    fclose(stdin); fclose(stdout);    
    return 0;   
}