Pagini recente » Cod sursa (job #1058309) | Cod sursa (job #17436) | Cod sursa (job #315252) | Cod sursa (job #1859962) | Cod sursa (job #64935)
Cod sursa(job #64935)
#include <stdio.h>
#define infile "medie.in"
#define outfile "medie.out"
#define cmax 7001
#define infinit 9999
int v[cmax], i, j, n, min=infinit, max;
long rez;
void readdata()
{
FILE *fin=fopen(infile, "r");
fscanf(fin, "%d\n", &n);
for (i=0; i<n; i++)
{
fscanf(fin, "%d\n", &j);
v[j]++;
if (j>max) max=j;
if (j<min) min=j;
}
fclose(fin);
}
int comb(int a)
{
if (a<2) return 0;
return (a*(a-1))/2;
}
int minim(int a)
{
int b=a-min,c=max-a;
return b<c?b:c;
}
void solve()
{
int aux;
for (i=min; i<=max; i++)
{
rez+=v[i]*comb(v[i]-1);
aux=minim(i);
if (v[i])
for(j=1; j<=aux; j++)
rez+=v[i]*v[i+j]*v[i-j];
}
}
void writedata()
{
FILE *fout=fopen(outfile, "w");
fprintf(fout, "%ld", rez);
fclose(fout);
}
int main()
{
readdata();
solve();
writedata();
return 0;
}