Pagini recente » Cod sursa (job #2888621) | Cod sursa (job #544779) | Cod sursa (job #2943739) | Cod sursa (job #956473) | Cod sursa (job #1908652)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,k,i,x[26];
float a[26];
double s;
unsigned long long fact(int n)
{
if(n==0)
return 1;
if(n==k)
return n;
else
return n*fact(n-1);
}
float calcul()
{
int j;
float p=1;
for(j=1;j<=k;j++)
p*=a[x[j]];
s+=p;
}
void A(int i)
{
int maxx=*max_element(x,x+i);
for(int valk=1+maxx;valk<=n;valk++)
{
x[i]=valk;
for(int v=1;v<=i;v++)
{
swap(x[v],x[i]);
if(i<k)
A(i+1);
else
calcul();
swap(x[v],x[i]);
}
}
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
A(1);
g<<(s/fact(n));
return 0;
}