Cod sursa(job #1086270)

Utilizator sebinechitasebi nechita sebinechita Data 17 ianuarie 2014 21:59:50
Problema Medie Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
ofstream fout("medie.out");
#define MAX 9004

FILE *fin=fopen("medie.in", "r");
unsigned const maxb=8192;
char buf[maxb];
int ptr=maxb-1;

int getInt()
{
    int nr=0;
    while(buf[ptr]>'9' || buf[ptr]<'0')
    {
        if(++ptr>=maxb)
            fread(buf, maxb, 1, fin), ptr=0;
    }
    while(buf[ptr]<='9' && buf[ptr]>='0')
    {
        nr=nr*10+buf[ptr]-'0';
        if(++ptr>=maxb)
            fread(buf, maxb, 1, fin), ptr=0;
    }
    return nr;
}


int a[MAX];

int fr[7010];

int main()
{
    int n, i, j, ma;
    n=getInt();
    int s=0;
    for(i=1;i<=n;i++)
    {
        a[i]=getInt();
        fr[a[i]]++;
    }

    for(i=1;i<=n;i++)
    {
        for(j=1+i;j<=n;j++)
        {
            fr[a[i]]--;
            fr[a[j]]--;

            ma=a[i]+a[j];
            if(ma%2==0)
            {
                s+=fr[ma/2];
            }

            fr[a[i]]++;
            fr[a[j]]++;

        }
    }
    fout<<s;
}