Pagini recente » Cod sursa (job #2751185) | Cod sursa (job #1446668) | Cod sursa (job #1455943) | Cod sursa (job #852272) | Cod sursa (job #2003327)
#include <iomanip>
#include <fstream>
using namespace std;
double sol = 0;
double v[30];
int n, m;
int st[30];
int nFact = 0;
void Read()
{
ifstream f("dezastru.in");
f >> n >> m;
for (int i = 1;i <= n;i++)
f >> v[i];
f.close();
}
//void Calculate()
//{
// nFact = 1;
// for (int i = 1;i <= n;i++)
// nFact *= i;
//}
//void Solution()
//{
// double s = 1;
// for (int i = 1;i <= m;i++)
// s *= v[st[i]];
// sum += s;
//}
void Back(int k,int s, double sum)
{
if (k > m)
{
sol += sum;
nFact++;
/*for (int i = 1;i <= m;i++)
cout << v[st[i]] << " ";
cout << "\n";*/
return;
}
/*for (int i = st[k - 1] + 1;i <= n - m + k;i++)
{
st[k] = i;
Back(k + 1, sum*v[st[k]]);
}*/
for (int i = s + 1;i <= n - m + k;i++)
{
Back(k + 1, i, sum*v[i]);
}
}
void Write()
{
ofstream g("dezastru.out");
g << setprecision(6) << sol / nFact << "\n";
g.close();
}
int main()
{
Read();
Back(1, 0, 1);
Write();
return 0;
}