Pagini recente » Cod sursa (job #1430660) | Cod sursa (job #2875403) | Cod sursa (job #2407845) | Cod sursa (job #2877126) | Cod sursa (job #1743728)
#include <cstdio>
#include <vector>
using namespace std;
int n, m;
int sol[20];
#define sol (sol+1)
double procente[20];
vector<double> elementeMedie;
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;
}
elementeMedie.push_back(tmp);
}
else
{
for(int i = sol[k - 1] + 1; i <= n; i++)
{
sol[k] = i;
backtracking(k + 1);
}
}
}
void afisare()
{
int l = elementeMedie.size();
double suma = 0;
for(int i = 0; i < l; i++)
{
suma += elementeMedie[i];
}
printf("%lf", suma / l);
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
citire();
backtracking(0);
afisare();
return 0;
}