Pagini recente » Cod sursa (job #939281) | Cod sursa (job #1130276) | Cod sursa (job #2787750) | Cod sursa (job #2339327) | Cod sursa (job #2198140)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 101
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
double a[NMAX];
vector< double> Perm[NMAX];
int visited[NMAX];
int nr;
int N,K,x[NMAX];
double finalresult;
int calcProbability()
{
double prod=1;
for(int i =1 ; i <= K; i++)
{
prod*=a[x[i]];
}
Perm[nr].push_back(prod);
}
int answer(int k)
{
if(k == N+1)
{
nr++;
calcProbability();
}
else
{
for(int i =1 ; i <= N; i ++)
if(!visited[i])
{
visited[i]=1;
x[k]=i;
answer(k+1);
visited[i]=0;
}
}
}
int FindRezist()
{
for(int i =1 ; i <= nr; i++)
{
finalresult+=Perm[i].back()/nr;
}
}
int main()
{
fin>>N>>K;
for(int i =1 ; i <= N; i ++)
{
fin>>a[i];
}
answer(1);
FindRezist();
fout<<finalresult;
return 0;
}