Pagini recente » Atasamentele paginii prega_oni2015_6 | Cod sursa (job #473655) | Borderou de evaluare (job #1432366) | Cod sursa (job #61357) | Cod sursa (job #438043)
Cod sursa(job #438043)
#include <stdio.h>
int st[30];
double prob[30], s, p;
int n, K, i, j;
int k, AS;
long long fact;
double back (int k)
{
if (k == K + 1)
{
/*for (i=1; i<=K; ++i)
printf ("%d ", st[i]);
printf ("\n");*/
fact ++;
p = 1;
for (i=1; i<=K; ++i)
p *= prob[st[i]];
s += p;
}
else
{
if (k == 1)
st[k] = 0;
else
st[k] = st[k-1];
while (st[k] < n)
{
st[k] ++;
back (k + 1);
}
}
return s;
}
int main()
{
FILE *f = fopen ("dezastru.in","r");
FILE *g = fopen ("dezastru.out","w");
fscanf (f,"%d %d", &n, &K);
for (i=1; i<=n; ++i)
fscanf (f,"%lf", &prob[i]);
fprintf (g,"%6lf", back (1)/fact);
fclose(g);
fclose(f);
return 0;
}