Pagini recente » Cod sursa (job #734073) | Cod sursa (job #2399529) | Cod sursa (job #2696021) | Cod sursa (job #2647341) | Cod sursa (job #782111)
Cod sursa(job #782111)
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int st[30], N, K, nr, i, j;
double v[30], S, prod[30];
int valid(int k)
{
for(i=1; i<k; i++)
if(st[i]==st[k])
return 0;
return 1;
}
void back(int k)
{
int i;
for(i=1; i<=N; i++)
{
st[k]=i;
if(valid(k)) if(k==K)
{
prod[++nr]=1;
for(j=1; j<=k; j++)
prod[nr]*=v[st[j]];
}
else back(k+1);
}
}
int main()
{
fin>>N>>K;
for(i=1; i<=N; i++)
fin>>v[i];
back(1);
for(i=1; i<=nr; i++)
S+=prod[i]/nr;
fout<<setprecision(6)<<S;
fin.close();
fout.close();
return 0;
}