Pagini recente » Diferente pentru algoritmiada-2011/runda-3 intre reviziile 2 si 1 | Concursuri Virtuale | Diferente pentru utilizator/marie02thg intre reviziile 2 si 1 | Diferente pentru utilizator/smaranda intre reviziile 40 si 41 | Cod sursa (job #491662)
Cod sursa(job #491662)
#include <stdio.h>
int n,k,i,c;
double p[26],s;
void back(int x,int a,double pos)
{
if(x==k)
{
s+=pos;
++c;
return;
}
int i;
for(i=a+1;i<=n+x-k+1;i++) back(x+1,i,pos*p[i]);
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++) scanf("%lf",&p[i]);
for(i=1;i<=n-k+1;i++) back(1,i,p[i]);
s=s/c;
printf("%lf",s);
return 0;
}