Lang:G++
Edit123456789101112131415161718192021222324252627#include <iostream>#include <vector>using namespace std;int main() {int n, m;cin >> n >> m;vector<double> p(n);for (int i=0;i<n;i++) {cin >> p[i];}vector<vector<double> > f(n+1, vector<double>(m+1));f[1][1] = p[0];f[1][0] = 1.0 - p[0];for (int i=2;i<=n;i++) {for (int j=0;j<=i && j<=m;j++) {f[i][j] = 0;if (j-1>=0) {f[i][j] += p[i-1] * f[i-1][j-1];}if (j <= i-1) {f[i][j] += (1.0 - p[i-1]) * f[i-1][j];}}}cout << f[n][m];return 0;}