Cod sursa(job #559238)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 17 martie 2011 18:26:44
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

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

inline void comb(int k){
    int i=0;
    if (k == p+1){
    	float s=1;
    	for (i=1; i<=p; ++i)
    		s*=attacks[v[i]];
        sol+=s;
        ++nCombinations;
    }
    else{
    	for (i=v[k-1]+1; i<=n-p+k; ++i){
    		v[k]=i;
    		comb(k+1);
    	}
    }
}

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

    int i;

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

    comb(1);
    printf("%f\n",sol/nCombinations);
    return 0;
}