Cod sursa(job #2095706)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 28 decembrie 2017 03:38:13
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>

#define MaxN 7005
#define MOD 1000000007
#define INF 2140000000
#define MAX 131072

using namespace std;

FILE *IN=fopen("medie.in","r"),*OUT=fopen("medie.out","w");

int N,fr[MaxN],X,Max=0;
int Ans=0,pos=0;
char f[MAX];
inline int Read()
{
    int nr=0;
    while(f[pos]<'0'||f[pos]>'9')
        pos++;
    while(f[pos]>='0'&&f[pos]<='9')
        nr=10*nr+f[pos++]-'0';
    return nr;
}
int main()
{
    fread(f,1,MAX,IN);

    N=Read();

    for(int i=1;i<=N;i++)
    {
        X=Read();
        ++fr[X];
        if(Max<X)
            Max=X;
    }

    for(int i=1;i<=Max;i++)
    {
        for(int j=i+2;j<=Max;j+=2)
            Ans+=fr[i]*fr[j]*fr[(i+j)>>1];
        Ans+=(fr[i]*(fr[i]-1)*(fr[i]-2))>>1;
    }

    fprintf(OUT,"%d",Ans);

    return 0;
}