Pagini recente » Cod sursa (job #1055231) | Cod sursa (job #2146475) | Cod sursa (job #1346841) | Cod sursa (job #68259) | Cod sursa (job #234943)
Cod sursa(job #234943)
#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;
}