Cod sursa(job #134334)
| Utilizator | Data | 11 februarie 2008 14:14:09 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <cstdio>
#define dim 26
int N, K, Nr;
double P;
double A[dim];
void Back(int k, int last, double s)
{
if(k == K + 1)
{
P += s;
++ Nr;
return;
}
else
for(int i=last+1; i<=N-K+k+1; ++i)
Back(k+1, i, s*A[i]);
}
int main()
{
freopen("dezastru.in", "rt", stdin);
freopen("dezastru.out", "wt", stdout);
scanf("%d %d", &N, &K);
int i;
for(i=1; i<=N; ++i) scanf("%lf", A+i);
Back(1, 0, 1);
P /= Nr;
printf("%lf", P);
fclose(stdin);
fclose(stdout);
return 0;
}
