Pagini recente » Cod sursa (job #2517288) | Cod sursa (job #205994) | Cod sursa (job #1143753) | Monitorul de evaluare | Cod sursa (job #1985399)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");
int n,k,p[30],nr_pos;
double x[30],suma;
void bkt(int poz)
{
if (poz==k+1)
{
///avem o posibilitate
double prob=1;
for (int i=1; i<=k; i++)
prob*=x[p[i]];
suma+=prob;
nr_pos++;
}
for (int i=p[poz-1]+1; i<=n; i++)
{
p[poz]=i;
bkt(poz+1);
}
}
int main()
{
fi>>n>>k;
for (int i=1; i<=n; i++)
fi>>x[i];
bkt(1);
fo<<fixed<<setprecision(6)<<suma/nr_pos;
fi.close();
fo.close();
return 0;
}