Pagini recente » Cod sursa (job #1724244) | Cod sursa (job #1421671) | Cod sursa (job #735028) | Cod sursa (job #456477) | Cod sursa (job #1141824)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k, viz[26];
long long nrp;
double prod, prob[26], b[26];
vector<float> perm;
void read()
{
f >> n >> k;
for(int i = 1; i <= n; ++i)
f >> prob[i];
f.close();
}
void back(int niv)
{
if(niv == k)
{
double aux = 1;
for(int i = 1; i <= k; ++i)
aux *= b[i];
prod += aux;
nrp++;
return;
}
for(int i = b[niv] + 1; i <= n; ++i)
{
if(b[niv] != prob[i])
{
b[niv+1] = prob[i];
back(niv + 1);
}
}
}
void solve()
{
for(int i = 0; i < n; ++i)
perm.push_back(prob[i]);
int ord = 1;
nrp = 0;
prod = 0;
back(0);
g << prod / nrp;
/*do {
prod += prob[nrp/k];
for(int i = 0; i < perm.size(); ++i)
cout << perm[i] << " ";
cout << '\n';
nrp++;
} while(next_permutation(perm.begin(), perm.end()));*/
}
int main()
{
read();
solve();
return 0;
}