Pagini recente » Istoria paginii runda/oni10_2013 | Istoria paginii runda/simulare.well/clasament | Cod sursa (job #1724760) | Cod sursa (job #2542953) | Cod sursa (job #1123925)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,x[100],z,fact=1;
long double y[100];
long double suma=0;
void bkt(int k)
{
if(k==z)
{
long double prod=1;
for(int i=0;i<z;i++)
{
prod*=y[x[i]];
}
suma+=prod/fact;
//fout<<prod<<" "<<suma<<'\n';
}
else
{
for(int i=1;i<=n;i++)
{
int ok=0;
for(int j=0;j<k;j++)
if(x[j]==i)ok=1;
if(!ok)
{
x[k]=i;
bkt(k+1);
}
}
}
}
int main()
{
fin>>n>>z;
for(int i=1;i<=n;i++)
fin>>y[i];
for(int i=1;i<=n;i++)
fact=fact*i;
bkt(0);
fout<<suma;
}