Pagini recente » Cod sursa (job #237989) | Monitorul de evaluare | Cod sursa (job #797989) | Cod sursa (job #17040) | Cod sursa (job #2908043)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define N 26
double dp[N][N]={0}, v[N]={0};
int main()
{
FILE* in = fopen("dezastru.in", "r");
FILE* out = fopen("dezastru.out", "w");
int n, i, j, k, k1;
long long r = 1;
fscanf(in, "%d%d", &n, &k);
for (i = 1; i <= n; i++)
fscanf(in, "%lf", &v[i]);
for (i = 0; i <= n; i++)
dp[i][0] = 1;
for (i = 1; i <= n; i++)
for (j = 1; j <= k; j++)
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] * v[i];
for (i = 0; i <= n; i++)
{
for (j = 0; j <= k; j++)
printf("% lf", dp[i][j]);
printf("\n");
}
if (2 * k < n)
k1 = n - k;
else
k1 = k;
for (i = k1 + 1; i <= n; i++)
r = r * i;
for (i = 1; i <= n - k1; i++)
r = r / i;
fprintf(out, "%6lf", dp[n][k] / r);
fclose(in);
fclose(out);
return 0;
}