Cod sursa(job #283002)

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