Cod sursa(job #2168341)
| Utilizator | Data | 14 martie 2018 10:31:56 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<cstdio>
#include <bitset>
using namespace std;
int N, p;
double a[26];
double probabilitate,ct;
void bk(int k,double sum,int q)
{
if(k == p + 1)
{
probabilitate+=sum;
ct++;
}
else
{
for(register int x = q + 1; x<= N - p + k; ++x)
{
bk(k+1,sum*a[x],x);
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&N,&p);
for(int i = 1; i<= N;++i)
scanf("%lf",&a[i]);
bk(1,1,0);
printf("%f",probabilitate/ct);
return 0;
}
