Pagini recente » Cod sursa (job #209059) | Cod sursa (job #1590002) | Cod sursa (job #1632542) | Cod sursa (job #564191) | Cod sursa (job #690377)
Cod sursa(job #690377)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
short n, k, st[30];
long long perm=0;
double p[30], prob, probfinal=0;
void citire() {
int i;
f>>n>>k;
for(i=1; i<=n; i++) f>>p[i];
}
void tipar() {
int i; prob=1;
for(i=1; i<=k; i++) {
// g<<st[i]<<" ";
prob*=p[st[i]];
}
probfinal+=prob;
// g<<"\n";
perm++;
}
int valid(int q) {
int i;
for(i=1; i<q; i++) {
if(st[q]<=st[i]) return 0;
}
return 1;
}
void back(int q) {
int i;
for(i=1; i<=n; i++) {
st[q]=i;
if(valid(q)) {
if(q==k) tipar();
else back(q+1);
}
}
}
int main() {
citire();
back(1);
g<<probfinal/perm;
f.close();
g.close();
return 0;
}