Pagini recente » Cod sursa (job #1304721) | Cod sursa (job #615728) | Monitorul de evaluare | Cod sursa (job #2792767) | Cod sursa (job #1681986)
#include <cstdio>
using namespace std;
double s, v[30];
int n, k, var;
inline void backtracking( int niv, int last, double prob ){
int i;
if( niv - 1 == k ){
s += prob;
var++;
return ;
}
else{
for( i = last + 1; i <= n - k + niv; ++i ){
backtracking( niv + 1, i, prob * v[i] );
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i, j;
scanf("%d%d",&n,&k);
for( i = 1; i <= n; ++i ){
scanf("%lf",&v[i]);
}
backtracking( 1, 0, 1 );
printf("%.6lf",s/(var*1.0));
return 0;
}