Cod sursa(job #234914)

Utilizator andumMorie Daniel Alexandru andum Data 22 decembrie 2008 11:37:39
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>

FILE *f,*g;

int n,v[801],i,j,k,sum;

int cautare(int x, int y, int sum)
{
  int m,i,j;
  i=x;
  j=y;
  while (i<=j)
   {
      m=(i+j)/2;
      if (v[m]>sum)
	j=m-1;
       else
	 i=m+1;
   }
  k=m-x+1;
  return k;
}

int main()
{

 freopen("nrtri.in","r", stdin);
 freopen("nrtri.out","w", stdout);

 scanf("%d", &n);
 for (i=1;i<=n;i++)
	scanf("%d", &v[i]);
 for (i=1;i<=n-1;i++)
  for (j=i+1;j<=n;j++)
	if (v[i]>v[j])
		{
		 v[0]=v[i];
		 v[i]=v[j];
		 v[j]=v[0];
		}
 for (i=1;i<=n-2;i++)
  for (j=i+1;j<=n-1;j++)
	 {
	  sum=v[i]+v[j];
	  k+=cautare(j+1,n,sum);
	 }
 printf("%d", k);

 return 0;
}