Pagini recente » Cod sursa (job #1176783) | Cod sursa (job #376046) | Cod sursa (job #745944) | Cod sursa (job #2284087) | Cod sursa (job #596567)
Cod sursa(job #596567)
#include<cstdio>
#include<fstream>
using namespace std;
short n,k,v[27],uz[27];
double a[27],suma,p=1;
int numar;
void Back(short pas)
{
short i,limita;
if(pas==k+1)
{
suma+=p;
numar++;
}
else
{
limita=n-k+pas;
for(i=v[pas-1]+1;i<=limita;i++)
{
if(uz[i]==0)
{
v[pas]=i;
uz[i]=1;
p=p*a[i];
Back(pas+1);
uz[i]=0;
p=p/a[i];
}
}
}
}
int main()
{
int i;
ifstream fin("dezastru.in");
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>a[i];
fin.close();
Back(1);
suma=suma/numar;
freopen("dezastru.out","w",stdout);
printf("%.6f\n",suma);
return 0;
}