Cod sursa(job #559261)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 17 martie 2011 18:45:23
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>

const int NMAX=28;
float attacks[NMAX];
int v[NMAX];
int n,p,nCombinations;
double sol;

inline void back(int pas, int last, double sum){
    if (pas == p){
        sol+=sum;
        ++nCombinations;
    }
    else
    	for (int i=last; i<=n-p+pas; ++i)
    		back(pas+1, i+1, sum*attacks[i]);
}

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

    scanf("%d%d",&n,&p);
    for (int i=0; i<n; ++i)
    	scanf("%f",&attacks[i]);

    back(0,0,1);
    printf("%.6lf\n",sol/nCombinations);
    return 0;
}