Pagini recente » Cod sursa (job #661246) | Cod sursa (job #2568097) | Cod sursa (job #566866) | Borderou de evaluare (job #1567315) | Cod sursa (job #1141891)
/// Craciun Catalin
/// Dezastru
/// www.infoarena.ro/problema/dezastru
#include <fstream>
#include <iostream>
#include <iomanip>
#define NMax 30
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
short n,k;
double A[NMax];
int C[NMax];
double rez;
long long numitor;
void foundComb()
{
numitor++;
double temp=1;
for (short i=1;i<=k;i++)
temp*=A[C[i]];
temp*=k;
rez+=temp;
}
void comb(int p)
{
if (p==k+1)
foundComb();
else
for (int i=C[p-1]+1;i<=n-k+p;i++)
{
C[p]=i;
comb(p+1);
}
}
long long fact(long long x)
{
long long p=1;
for (long long i=1;i<=x;i++)
p*=i;
return p;
}
int main()
{
f>>n>>k;
for (short i=1;i<=n;i++)
f>>A[i];
f.close();
comb(1);
rez/=(numitor*k);
g<<fixed<<setprecision(6)<<rez<<'\n';
g.close();
return 0;
}