Pagini recente » Monitorul de evaluare | Cod sursa (job #1124953) | Cod sursa (job #2693244) | Cod sursa (job #164968) | Cod sursa (job #2283751)
#include <cstdio>
using namespace std;
int n, sol[12], m, viz[12];
float a[12], s, nr=1;
void prob()
{
float p=1;
for(int i=0; i<m; i++)
p*=a[sol[i]];
s+=p;
}
void bkt(int k)
{
if(k == n)
{
prob();
return;
}
for(int v=1; v<=n; v++)
{
if(!viz[v])
{
sol[k]=v;
viz[v]=1;
bkt(k+1);
viz[v]=0;
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i=1; i<=n; i++)
{
scanf("%f", &a[i]);
nr*=i;
}
bkt(0);
s/=nr;
printf("%.6f", s);
return 0;
}