Pagini recente » Cod sursa (job #1458967) | Cod sursa (job #2705221) | Cod sursa (job #327201) | Cod sursa (job #607478) | Cod sursa (job #2388828)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");
const int nmax=25;
int n, k, fact=1;
int S[nmax+5], F[nmax+5];
double s;
double P[nmax+5];
void g(int niv)
{
if(niv==n)
{
double p=1;
for(int i=0; i<k; i++)
p*=P[S[i]];
fo<<p<<"\n";
s+=(double)p/fact;
}
else
{
for(int i=0; i<n; i++)
{
if(!F[i])
{
F[i]=1;
S[niv]=i;
g(niv+1);
F[i]=0;
}
}
}
}
int main()
{
fi>>n>>k;
for(int i=0; i<n; i++)
fi>>P[i];
for(int i=2; i<=n; i++)
fact*=i;
g(0);
fo<<fixed<<setprecision(6)<<s;
fi.close();
fo.close();
return 0;
}