Pagini recente » Cod sursa (job #446569) | Cod sursa (job #3213636) | Cod sursa (job #977044) | Cod sursa (job #2708979) | Cod sursa (job #2810614)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N, K, countt;
float a[25], sol[25],pozs[25], suma_max;
void adauga_suma()
{
float prob =1;
for (int i = 0; i < K; i++)
prob *= sol[i];
suma_max += prob;
countt++;
}
int verifica()
{
for (int i = 0; i < N; i++)
if (pozs[i] > 1) return 0;
return 1;
}
void bkt(int poz)
{
if (poz == K) adauga_suma();
else
for (int i = 0; i < N; i++) {
sol[poz] = a[i];
pozs[i]++;
if (verifica()) bkt(poz + 1);
pozs[i]--;
}
}
int main()
{
fin >> N >> K;
for (int i = 0; i < N; i++)
fin >> a[i];
bkt(0);
fout << suma_max / countt;
fin.close();
fout.close();
return 0;
}