Pagini recente » Cod sursa (job #3197997) | Cod sursa (job #643612) | Cod sursa (job #1722367) | Cod sursa (job #1163994) | Cod sursa (job #1908809)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
int n, k, x[30], nr=1;
float t[30], S=0;
void numar ()
{
int s=k; int n1=n;
while (s)
{
nr*=n1;
n1--; s--;
}
}
void afisare()
{
float f=1;
int i;
for (i=1; i<=k; i++)
f*=t[x[i]];
S+=f/nr;
}
void A(int i)
{
int maxx=*max_element(x, x+i);
for (int val=1+maxx; val<=n; val++)
{
x[i]=val;
for (int v=1; v<=i; v++)
{
swap(x[v], x[i]);
if (i<k)
A(i+1);
else
afisare();
swap(x[v], x[i]);
}
}
}
int main()
{
f >> n >> k;
for (int i=1; i<=n; i++)
f >> t[i];
numar();
A(1);
g << S;
}