Pagini recente » Istoria paginii runda/sfdhd/clasament | Istoria paginii runda/winners20 | Istoria paginii runda/winners10 | Istoria paginii runda/simojir/clasament | Cod sursa (job #421946)
Cod sursa(job #421946)
#include<iostream>
#include<fstream>
#include<iomanip.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int v[45],k,n,ct;
double p[50],prod,s;
void Prelucreaza()
{
prod = 1;
ct ++;
for(int i=1;i<=k;i++)
prod*=p[v[i]];
s+=prod;
}
void Genereaza(int pas)
{
if(pas == k+1)
Prelucreaza();
else
for(int i=v[pas-1]+1; i<=n-k+pas; i++)
{
v[pas]=i;
Genereaza(pas+1);
}
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
fin>>p[i];
Genereaza(1);
fout<<fixed;
fout<<setprecision(6);
fout<<s/ct;
return 0;
}