Pagini recente » Cod sursa (job #300343) | Cod sursa (job #913686) | Cod sursa (job #60457)
Cod sursa(job #60457)
#include<stdio.h>
#include<string.h>
int main()
{
long ok,u[1000],s,m,v[10000],i,j,k,sol=0,n,aux,p;
FILE*f=fopen("medie.in","r");
FILE*g=fopen("medie.out","w");
fscanf(f,"%ld",&n);
memset(u,0,sizeof(u));
for(i=1;i<=n;++i) {fscanf(f,"%ld",&v[i]); u[v[i]]++;}
do
{
ok=1;
for(i=1;i<n;++i) if (v[i]>v[i+1]) {aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ok=0;}
}
while(ok==0);
for(k=1;k<n;++k)
{
s=2*v[k];
for(p=1;p<=k;++p)
{
i=k+1; j=n;
while(i<=j)
{
m=(i+j)/2;
if (v[m]+v[p]==s)
{
sol+=u[v[m]];
if (v[m]==v[p]) sol--;
if (v[m]==v[k]) sol--;
break;
}
else if (v[m]+v[p]<s) i=m+1;
else j=m-1;
}
}
}
fprintf(g,"%ld",sol);
return 0;}