Pagini recente » Cod sursa (job #2445759) | Cod sursa (job #1297759) | Cod sursa (job #2291290) | Cod sursa (job #1806306) | Cod sursa (job #1743732)
#include <cstdio>
#include <vector>
using namespace std;
int n, m;
int sol[30];
#define sol (sol+1)
double procente[30];
double suma;
double l;
void citire()
{
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++)
{
scanf("%lf", &procente[i]);
}
}
void backtracking(int k)
{
if(k == m)
{
double tmp = 1;
for(int i = 0; i < m; i++)
{
double tmpx = procente[sol[i] - 1];
tmp *= tmpx;
}
suma += tmp;
l++;
}
else
{
for(int i = sol[k - 1] + 1; i <= n; i++)
{
sol[k] = i;
backtracking(k + 1);
}
}
}
void afisare()
{
printf("%lf", suma / l);
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
citire();
backtracking(0);
afisare();
return 0;
}