Pagini recente » Cod sursa (job #2649030) | Cod sursa (job #117634) | Cod sursa (job #510011) | Cod sursa (job #1301796) | Cod sursa (job #1141918)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <ctime>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k;
long long nrp, b[26];
long double prod, prob[26];
void read()
{
f >> n >> k;
for(int i = 1; i <= n; ++i)
f >> prob[i];
f.close();
}
void back(int niv, int x, double aux)
{
if(niv == k+1)
{
prod += (k*aux);
nrp++;
return;
}
for(int i = x; i+k <= n+niv; ++i)
{
back(niv + 1, i+1, aux * prob[i]);
}
}
void solve()
{
nrp = 0;
prod = 0;
back(1, 1, 1.);
g << fixed << setprecision(6) << (double)prod / ((double)(k*nrp));
/*do {
prod += prob[nrp/k];
for(int i = 0; i < perm.size(); ++i)
cout << perm[i] << " ";
cout << '\n';
nrp++;
} while(next_permutation(perm.begin(), perm.end()));*/
}
int main()
{
double tclock = clock();
read();
solve();
cout << (clock() - tclock) / CLOCKS_PER_SEC;
return 0;
}