Cod sursa(job #248299)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 25 ianuarie 2009 12:44:26
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
int a[27],n,m,k2;
double sum,b[27],prod;
int check (int k,int y)
{
    int j;
    for(j=1;j<k;++j)
    if(a[j]==y)
    return 0;
    return 1;
}
void back (int k)
{
    int i;
    if(k==n+1)
    {
        prod=1;
        for(i=1;i<=m;++i)
        prod*=b[a[i]];
        sum+=prod;
    }
    else
    {
        for(i=1;i<=n;++i)
        if(check(k,i)==1)
        {
            a[k]=i;
            back(k+1);
        }
    }
}
int main ()
{
    int i;
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d%d",&n,&m);
    k2=n*m;
    for(i=1;i<=n;++i)
    scanf("%lf",&b[i]);
    back(1);
    printf("%.6lf",sum/k2);
    return 0;
}