Pagini recente » Cod sursa (job #1848523) | Cod sursa (job #2501828) | Monitorul de evaluare | Cod sursa (job #164638) | Cod sursa (job #2244170)
#include <fstream>
double dp[1 + 25][1 + 25];
int main() {
std::ifstream fin("dezastru.in");
std::ofstream fout("dezastru.out");
int n, k;
fin >> n >> k;
double p[1 + n];
for (int i = 1; i <= n; i++)
fin >> p[i];
fin.close();
dp[0][0] = 1;
for (int num = 1; num <= k; num++)
for (int i = 1; i <= n; i++)
for (int j = 0; j < i; j++)
dp[num][i] += dp[num - 1][j] * p[i] * num / (n - num + 1);
double answer = 0;
for (int i = 1; i <= n; i++)
answer += dp[k][i];
fout << answer << '\n';
fout.close();
return 0;
}