Pagini recente » Cod sursa (job #1432391) | Cod sursa (job #1967766) | Cod sursa (job #727848) | Cod sursa (job #1656192) | Cod sursa (job #2452571)
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n,k;
double v[26],sum;
void bkt(int poz,double prod,int last)
{
if(poz==k)
{
sum+=prod;
return;
}
for(int i=last+1; i<=n; i++)
bkt(poz+1,prod*v[i],i);
}
int main()
{
int cn,i;
in>>n>>k;
cn=n;
for(i=1; i<=n; i++)
in>>v[i];
bkt(0,1,0);
if(k>n-k)
k=n-k;
for(i=2; i<=k; i++)
{
if(sum*i<=8*(1e7))
sum*=i;
else
{
sum/=n;
--n;
}
}
for(i=2; i<=cn-k; i++)
{
if(sum*i<=8*(1e7))
sum*=i;
else
{
sum/=n;
--n;
}
}
while(n)
{
sum/=n;
--n;
}
out<<sum;
return 0;
}