Pagini recente » Cod sursa (job #1458190) | Cod sursa (job #597594) | Cod sursa (job #1840054) | Cod sursa (job #2748906) | Cod sursa (job #1193183)
using namespace std;
#include <fstream>
#include <iomanip>
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k;
int v[30];
double pb=0, prod=1;
double p[30];
void bkt(int) ;
int main()
{
int i;
fin>>n>>k;
for(i=0; i<n; ++i) fin>>p[i];
for(i=0; i<=n-k; ++i)
{
v[0] = i;
prod = p[i];
bkt(1);
}
for(double fact = k+1; fact<=n; ++fact)
pb /= fact;
fout<<fixed<<setprecision(10)<<pb<<'\n';
return 0;
}
void bkt(int poz)
{ //pozitiile de la 0 la poz-1 sunt ocupate
if(poz==k) pb += prod;
else
{
for(int i=v[poz-1]+1; i<=poz+n-k; ++i)
{
v[poz] = i;
prod *= p[i];
bkt(poz+1);
v[poz] = 0;
prod /= p[i];
}
}
}