Pagini recente » Cod sursa (job #2262552) | Cod sursa (job #1794179) | Cod sursa (job #1664776) | Cod sursa (job #1370313) | Cod sursa (job #1052892)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int N, M, sol[20], use[20];
double s, p[20], c;
void afis(){
int i;
double x = 1;
for(i = 1; i <= M; i++){
// out << sol[i] << " ";
x *= p[sol[i]];
}
s += (x/c);
//out << "\n";
}
void backt(int k){
if(k == M + 1){
afis();
}else{
for(int i = 1; i <= N; i++){
if(!use[i]){
sol[k] = i;
use[i] = 1;
backt(k + 1);
use[i] = 0;
}
}
}
}
int main()
{
in >> N >> M;
c = 1;
for(int i = 1; i <= N; i++){
c *= i;
}
for(int i = 1; i <= N; i++){
in >> p[i];
}
backt(1);
out << s;
return 0;
}