Cod sursa(job #1033030)

Utilizator dyanagGrigore Diana dyanag Data 16 noiembrie 2013 13:04:30
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
int st[26], k, n, cate;
double v[26], s;
int valid(int x){
    int i;
    for(i=1; i<x; ++i)
        if(st[i]==st[x])
            return 0;
    return 1;
}
void back(int x){
    int i, j;
    float sum=1;
    if(x==k+1){
        ++cate;
        for(i=1; i<=k; ++i)
            sum=sum*float(v[st[i]]);
        s+=sum;
    }
    else
        for(i=1; i<=n; ++i){
            st[x]=i;
            if(valid(x)==1)
                back(x+1);

        }
}

int main()
{
    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);
    scanf("%d%d", &n, &k);
    for(int i=1; i<=n; ++i)
        scanf("%lf", &v[i]);
    back(1);
    s=s/float(cate);
    printf("%lf", s);
return 0;
}