Pagini recente » Cod sursa (job #1985008) | Cod sursa (job #644806) | Cod sursa (job #678469) | Istoria paginii runda/cnrv_oji_x | Cod sursa (job #121374)
Cod sursa(job #121374)
#include<stdio.h>
int v[7001];
int pozitie (int s, int d)
{
int x=v[s];
while (s<d)
{
while (s<d&&x<=v[d])
--d;
v[s]=v[d];
while (s<d&&x>=v[s])
++s;
v[d]=v[s];
}
v[s]=x;
return s;
}
void quick (int s, int d)
{
int p;
p=pozitie(s,d);
if (s<p-1)
quick(s,p-1);
if (p+1<d)
quick(p+1,d);
}
int main ()
{
int nr=0,n,i,c,j;
FILE *f;
f=fopen("medie.in","r");
fscanf(f,"%d",&n);
for (i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
fclose(f);
quick(1,n);
for (i=2;i<=n/2;++i)
{ //doar afla NUMARUL !
for (j=1;j<i;++j) //gaseste partea stanga
{
c=i+(n-i)/2;
if (!c)
++c;
if ( (v[j]+v[c])*1.0/2.0==v[i]*1.0&&j!=c )
++nr;
else
if ( (v[j]+v[c])*1.0/2.0<v[i]*1.0 )
for (;c<=n;++c)
if ( 1.0*(v[j]+v[c])/2.0==v[i]*1.0 )
++nr;
else;
else
for (;c>i;--c)
if ( 1.0*(v[j]+v[c])/2.0==v[i]*1.0 )
++nr;
}
}
for (i=n/2+1;i<=n-1;++i)
for (j=i+1;j<=n;++j)
{
c=(i-1)/2;
if (!c)
++c;
if ( (v[j]+v[c])*1.0/2.0==v[i]*1.0 )
++nr;
else
if ( (v[j]+v[c])*1.0/2.0<v[i]*1.0 )
for (;c<i;++c)
if ( (v[j]+v[c])*1.0/2.0==1.0*v[i] )
++nr;
else;
else
for (;c>=1;--c)
if ( (v[j]+v[c])*1.0/2.0==1.0*v[i] )
++nr;
}
f=fopen("medie.out","w");
fprintf(f,"%d",nr);
fclose(f);
return 0;
}