Cod sursa(job #282961)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 18 martie 2009 16:18:11
Problema Medie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<algorithm>
#define DIM 7001
using namespace std;
int n,f[DIM];
long long calc(int a){
    int i;
    long long p;
    if(a<2)
        return 0;
    for(i=3,p=1; i<=a; p*=i++);
    for(i=1; i<=a-2; p/=i++);
    return p;}
void solve(){
    int i,st,dr,nr;
    long long k;
    scanf("%d",&n);
    for(i=1; i<=n; ++i){
        scanf("%d",&nr);
        ++f[nr];}
    for(i=1,k=0; i<=n; ++i){
        k+=f[i]*calc(f[i]-1);
        for(st=i-1,dr=i+1; st>0&&dr<=n; --st,++dr)
            if((f[st]&1)&&(f[dr]&1))
                k+=f[i]*f[st]*f[dr];}
    printf("%lld",k);}
int main(){
    freopen("medie.in","r",stdin);
    freopen("medie.out","w",stdout);
    solve();
    return 0;}