Pagini recente » Cod sursa (job #911738) | Cod sursa (job #424404) | Cod sursa (job #1011486) | Cod sursa (job #1071815) | Cod sursa (job #2257938)
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, w, v[28], comb = 0;
double probabilitatea = 0, p[28];
void calculeaza(){
double pr = 1;
for(int i = 1; i<=w; ++i){
pr*=p[v[i]];
}
probabilitatea+=pr;
}
void combinare(int k){
for(int i = v[k-1] + 1; i<=n; ++i){
v[k] = i;
if(k==w){ comb++;
calculeaza();
}
else if(n-v[k]>=w-k) combinare(k+1);
}
}
int main(){
fin>>n>>w;
v[0] = 0;
for(int i = 1; i<=n; ++i) fin>>p[i];
if(w==0){
fout<<1; return 0;
}
combinare(1);
fout<<(double) probabilitatea / comb;
return 0;
}