Pagini recente » Cod sursa (job #1499847) | Cod sursa (job #738401) | Cod sursa (job #772139) | Cod sursa (job #2823814) | Cod sursa (job #810853)
Cod sursa(job #810853)
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
int x[26],viz[26],n,k,nr;
double p[26],s;
void citire () {
int i;
ifstream f ("dezastru.in");
f>>n>>k ;
for (i=1;i<=n;i++) f>>p[i];
f.close();
}
double actualizare () {
double pp=1;
int i;
for (i=1;i<=k;i++) pp*=p[x[i]] ;
return pp ;
}
void back (int a) {
int i;
for (i=x[a-1]+1;i<=n;i++) {
x[a]=i;
if (!viz[i]) {
viz[i]=1;
if (a==k) {
nr++;
s+=2*actualizare();
}
else back(a+1);
}
viz[i]=0;
}
}
int main () {
citire();
back(1);
ofstream g ("dezastru.out");
g<<fixed;
g<<setprecision(6)<<s/nr/2;
g.close();
return 0;
}