Pagini recente » Cod sursa (job #2256724) | Cod sursa (job #592098) | Cod sursa (job #2377957) | Cod sursa (job #1075873) | Cod sursa (job #2068610)
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int uz[40],n,sol[40],m,t;
float atc[40],s,st;
void prelucrari();
void backtracking(int k);
int main()
{
int i;
fin >> n >> m;
for (i = 1; i <= n; i++) fin >> atc[i];
backtracking(1);
fout << st / t;
return 0;
}
void backtracking(int k)
{
int i;
if (k > n)
{
prelucrari();
}
else
for (i = 1; i <= n; ++i)
{
if (uz[i] == 0)
{
uz[i] = 1;
sol[k] = i;
backtracking(k+1);
uz[i] = 0;
}
}
}
void prelucrari()
{
int k;
int j;
t++;
s = 1;
for (j = 1; j <= m; ++j) s *= atc[sol[j]];
st = st + s;
}