Cod sursa(job #234926)

Utilizator andumMorie Daniel Alexandru andum Data 22 decembrie 2008 11:58:17
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;

int cautare(int x, int y, int sum)
{
  int m,i,j,last;
  i=x;
  j=y;
  while (i<=j)
   {
      m=(i+j)/2;
      if (v[m]>sum)
	j=m-1;
       else
	{
	 last=m;
	 i=m+1;
	}
   }
  k=last-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++)
	  k+=cautare(j+1,n,v[i]+v[j]);
 printf("%d", k);

 return 0;
}