Pagini recente » Cod sursa (job #2006846) | Istoria paginii utilizator/mihaescumihai | Istoria paginii runda/computer | Istoria paginii utilizator/eudanip | 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;
}