Pagini recente » Cod sursa (job #2138501) | Cod sursa (job #1158118) | Cod sursa (job #2659241) | Cod sursa (job #599762) | Cod sursa (job #3196556)
#include <fstream>
using namespace std;
const int NMAX = 26;
int N, K;
double fact, P[NMAX], sol;
bool viz[NMAX];
ifstream f("dezastru.in");
ofstream g("dezastru.out");
void BT(int k, double prod)
{
for (int i = 1; i <= N; i++)
if(viz[i] == 0)
{
viz[i] = 1;
prod *= P[i];
if(k == K)
sol += prod * fact;
else
BT(k + 1, prod);
viz[i] = 0;
prod /= P[i];
}
}
int main()
{
fact = 1.0;
f >> N >> K;
for (int i = 1; i <= N; i++)
{
f >> P[i];
fact *= i;
}
fact = 1.0 / fact;
BT(1, 1.0);
g << sol;
f.close();
g.close();
return 0;
}