Cod sursa(job #307909)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 25 aprilie 2009 14:46:05
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream.h>

int st,dr,mij,y,aux,j,nr,i,n,n1,k,v[3001];

int cautare(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()

{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for (i=1;i<=n;i++)
    f>>v[i];
n1=n;
do
  {
  k=0;
  for (i=1;i<=n1-1;i++)
      if (v[i]>v[i+1])
         {
                aux=v[i];
                v[i]=v[i+1];
                v[i+1]=aux;
                k=i;
         }
      n1=k;
  }
while (k>1);
for (i=1;i<n-1;i++)
    for (j=1;j<=n;j++)
	nr=cautare(1,n);
nr--;
g<<nr<<'\n';
g.close();
return 0;
}