Cod sursa(job #2095705)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 28 decembrie 2017 03:36:05
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 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 void Read(int &nr)
{
    nr=0;
    while(f[pos]<'0'||f[pos]>'9')
    {
        pos++;
        if(pos==MAX)
            fread(f,MAX,1,IN),pos=0;
    }
    while(f[pos]>='0'&&f[pos]<='9')
    {
        nr=10*nr+f[pos++]-'0';
        if(pos==MAX)
            fread(f,MAX,1,IN),pos=0;
    }
}
int main()
{
    fread(f,1,MAX,IN);

    Read(N);

    for(int i=1;i<=N;i++)
    {
        Read(X);
        ++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;
}