Pagini recente » Cod sursa (job #980965) | Cod sursa (job #1932431) | Cod sursa (job #232053) | Cod sursa (job #2272491) | Cod sursa (job #55554)
Cod sursa(job #55554)
#include <cstdio>
using namespace std;
int n, k;
float p[30], m[30][30];
int main()
{
FILE *fin = fopen("dezastru.in", "r");
FILE *fout = fopen("dezastru.out", "w");
fscanf(fin, "%d%d", &n, &k);
for (int i = 1; i <= n; i++)
fscanf(fin, "%f", p+i);
//m[0][0] = 1;
for (int i = 1; i <= n; i++)
{
m[i][1] = m[i-1][1] + p[i];
m[i][0] = 1;
// fprintf(fout, "%.6lf ", p[i]);
}
for (int i = 2; i <= n; i++)
for (int j = 1; j <= n; j++)
m[i][j] = m[i-1][j] + p[i] * m[i-1][j-1];
int comb = 1;
for (int i = n; i > n - k; i--)
comb *= i;
int aux = 1;
for (int i = 1; i <= k; i++)
aux *= i;
comb /= aux;
if (n == k || !k) comb = 1;
float sol = m[n][k] / (float)comb;
fprintf(fout, "%.6f", sol);
fclose(fin);
fclose(fout);
return 0;
}