Pagini recente » Cod sursa (job #1999989) | Cod sursa (job #2634587) | Cod sursa (job #2671033) | Cod sursa (job #268644) | Cod sursa (job #2194713)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N,K;
int X[30];
double V[30];
vector<double>Res;
void afisare(int pas)
{
double s=1;
for(int i=1;i<=pas;i++)
{
s *= V[X[i]];
}
Res.push_back(s);
}
int sol(int pas)
{
return pas == K;
}
int verif(int pas)
{
return pas <= K && X[pas] > X[pas-1];
}
void back(int pas)
{
for(int i=1;i<=N;i++)
{
X[pas] = i;
if (verif(pas))
{
if (sol(pas))
{
afisare(pas);
}
else
back(pas+1);
}
}
}
int main()
{
fin>>N>>K;
for(int i=1;i<=N;i++)
fin>>V[i];
back(1);
double s=0;
int n = Res.size();
for(int i=0;i<n;i++)
s += 1.0*(Res[i]/n);
fout<<s;
return 0;
}