Cod sursa(job #234943)

Utilizator stefynr8Space Monkey stefynr8 Data 22 decembrie 2008 12:13:23
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

FILE *f,*g;

int N,x,y,s,m,n,v[801],aux,i,j,k;

int BS(int x,int y,int s)
{

	int lo=x, hi=y, mid=s;

	for (lo = 1, hi = N; lo <= hi; )
	{
		mid = lo + (hi-lo) / 2;
		if (x < v[mid]) hi = mid-1;
			   else if (v[mid] < x) lo = mid+1;
					  else{
						while(v[mid+1]==x)
						     mid++;

						return mid;
					       }
	}
	return 0;


}

 int main()
{
 f=fopen("euclid3.in","r");
 g=fopen("euclid3.out","w");



 fscanf(f,"%d",&n);

 for(i=1;i<=n;i++)
	{
	fscanf(f,"%d",&v[i]);
	}
 fclose(f);

 for(i=1;i<n;i++)
	{
	 if(v[i]>v[i+1]){
			 aux=v[i];
			 v[i]=v[i+1];
			 v[i+1]=aux;
			 }

	 }

 for(i=1;i<n;i++)
  for(j=i+1;j<=n;j++)
    { s=v[i]+v[j];
      k=k+BS(j+1,n,s);

     }

 fprintf(g,"%d",k);

 fclose(g);
 return 0;

}