Pagini recente » Cod sursa (job #2120472) | Cod sursa (job #1502628) | Cod sursa (job #227167) | Cod sursa (job #1658532) | Cod sursa (job #2671334)
#include <iostream>
#include <fstream>
#include <iomanip>
#define Nmax 26
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int Stiva[Nmax];
bool Visited[Nmax];
double Numere[Nmax];
double Results[Nmax];
int ct_results;
int n, cate, ct;
double x, Suma;
double produs = 1;
void Solve( int lungime )
{
for( int i = 1; i <= cate; ++ i )
produs *= Numere[Stiva[i]];
Suma += produs / 6;
}
inline void Back( int k )
{
for( int i = Stiva[k - 1] + 1; i<= n; ++ i )
if( !Visited[i] )
{
Visited[i] = true;
Stiva[k] = i;
if( k == n )
Solve(k);
else
Back(k + 1);
Visited[i] = false;
}
}
int main()
{
fin >> n >> cate;
for( int i = 1; i <= n; ++ i )
{
fin >> x;
Numere[++ ct] = x;
}
Back(1);
fout << fixed << setprecision(6) << Suma;
return 0;
}