Pagini recente » Monitorul de evaluare | Istoria paginii runda/lucian_blaga_cls_10/clasament | Cod sursa (job #1576875) | Cod sursa (job #2007244) | Cod sursa (job #2003325)
#include <iomanip>
#include <fstream>
using namespace std;
double sol = 0;
double v[30];
int n, m, 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, 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]]);
}
}
void Write()
{
ofstream g("dezastru.out");
g << setprecision(6) << sol / nFact << "\n";
g.close();
}
int main()
{
Read();
Back(1, 1);
Write();
return 0;
}