Pagini recente » Cod sursa (job #2728310) | Cod sursa (job #1598483) | Cod sursa (job #3186312) | Cod sursa (job #1343713) | Cod sursa (job #690370)
Cod sursa(job #690370)
#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;
}