Pagini recente » Cod sursa (job #3160001) | Cod sursa (job #17923) | Cod sursa (job #2905539) | Cod sursa (job #1415211) | Cod sursa (job #2168089)
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int v[30], n, m, K;
double a[30], S;
void afis(int k)
{
double p = 1;
for(int i = 1; i <= m; ++i)
{
p *= a[v[i]];
}
S += p;
K++;
}
int verif(int k)
{
for(int i = 1; i < k; ++i)
if(v[i] == v[k])
return 0;
return 1;
}
void bck(int k)
{
for(int i = 1; i <= n; ++i)
{
v[k] = i;
if(verif(k))
{
if(k == m)
{
afis(k);
}
else bck(k+1);
}
}
}
int main()
{
f>>n>>m;
for(int i = 1; i <= n; ++i)
f>>a[i];
bck(1);
g<<fixed<<setprecision(6)<<(double)S/K;
return 0;
}