Pagini recente » Cod sursa (job #1671590) | Cod sursa (job #545253) | Cod sursa (job #95002) | Cod sursa (job #2133683) | Cod sursa (job #2035710)
#include <iostream>
#include <fstream>
#include <map>
#include <climits>
#define dm 30
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int checked[dm], n, k;
float v[dm], st[dm];
void citire()
{
fin >> n >> k;
for(int i = 1; i <= n; i++)
{
fin >> v[i];
}
}
int maxx = INT_MIN;
float sum = 0;
double nrperm = 1;
double prod = 1;
void afis()
{
fout << maxx / k;
}
void nrp()
{
for(int i = 1; i <= n; i++)
nrperm*=i;
}
void perm(int niv)
{
if( niv == n + 1)
{
for(int i = 1; i <= k; i++)
prod *= st[i];
sum += prod/nrperm;
return;
}
prod = 1;
for(int i = 1; i <= n; i++)
{
if(!checked[i])
{
//fout << i << " ";
checked[i] = 1;
st[niv] = v[i];
perm(niv + 1);
checked[i] = 0, prod = 1;
}
}
}
int main()
{
citire();
nrp();
perm(1);
fout << sum;
return 0;
}