Cod sursa(job #491132)

Utilizator cristian9Cristian Zloteanu cristian9 Data 9 octombrie 2010 20:42:10
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>

int p, v[30], aa, n;
double st[26], sum;

void back(int k){
    int i;
    double s=1;
    if(k==p){
        for(i=1; i<=p; i++){
            s*=st[v[i]];
        }
        sum+=s;
        s=1;
        aa++;
    }
    else{
        for(i=v[k]+1; i<=n; i++){
            v[k+1]=i;
            back(k+1);
        }
    }
}

int main(){
    freopen ("dezastru.in", "r", stdin);
    freopen ("dezastru.out", "w", stdout);

    int i;

    scanf("%d %d", &n, &p);

    if(!p){
        printf("100");
        return 0;
    }

    for(i=1; i<=n; i++)
        scanf("%lf", &st[i]);

    back(0);

    int rez;
    printf("%6lf ", sum/aa);

    return 0;
}