Cod sursa(job #259661)
Utilizator | Data | 15 februarie 2009 17:16:33 | |
---|---|---|---|
Problema | Dezastru | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
float s=0, f[26], p;
int n, x, k, st[20], o=0;
void back( int k, int d, double p )
{
if (k == x)
{
o++;
s+= p;
return;
}
for (int i = d + 1; i <= n - x + k; i++)
back( k + 1, i, p * f[i] );
}
int main(void)
{
freopen ("dezastru.in", "r", stdin);
freopen ("dezastru.out", "w", stdout);
scanf("%d%d", &n, &x);
for (register int i=1;i<=n;i++)
scanf ("%f", &f[i]);
back(0, -1, 1);
printf ("%.6f", s/o);
return 0;
}