Cod sursa(job #234955)

Utilizator MiryBlueRadutoiu Miruna MiryBlue Data 22 decembrie 2008 12:22:13
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream.h>
#include <fstream.h>
fstream f("nrtri.in", ios::in);
fstream g("nrtri.out", ios::out);
int l[801];
int bs(int i, int j, int x)
{
 int  mij, last=0;
 while(i<=j){
	      mij=i+(j-i)/2;
	      if (l[mij]>x)j=mij-1;
		else {i=mij+1;
		      last=mij;
		      }
	      }
 return last;
}
int main()
{
 int i=0, j=0, n, k=0, c, b;
 f>>n;
 for (i=1;i<=n;i++) f>>l[i];
 for (i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
      if(l[i]>l[j]){
	  l[0]=l[i];
	  l[i]=l[j];
	  l[j]=l[0];
	  }
 for(i=1;i<=n-2;i++)
    for(j=i+1;j<=n-1;j++)
     {c=l[i]+l[j];
      b=bs(j,n,c);
      if (b>0) k=k+b-j;
     }
 g<<k;
 f.close();
 g.close();
 return 0;
}