Pagini recente » Cod sursa (job #2403881) | Cod sursa (job #1583193) | Cod sursa (job #2761671) | Cod sursa (job #1489846) | Cod sursa (job #662467)
Cod sursa(job #662467)
#include <iostream>
#include <fstream>
using namespace std;
int n, p, i, st[26], permutari=0;
double prob[26], sumprob=0, rezultatfinal=0;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int valid(int k) {
int i;
double produs=1;
sumprob=0;
for(i=1; i<k; i++) {
if(st[i]==st[k]) { return 0; }
}
if(k==n) {
for(int j=1; j<=p; j++) {
produs*=prob[st[j]];
}
sumprob=produs;
//g<<sumprob<<" ";
rezultatfinal+=sumprob;
permutari++;
}
return 1;
}
void back(int k) {
int i, j;
for(i=1; i<=n; i++) {
st[k]=i;
if(valid(k)) {
if(k!=n) { back(k+1); }
}
}
}
int main() {
f>>n>>p;
for(int z=1; z<=n; z++) {
f>>prob[z];
}
back(1);
g<<rezultatfinal/permutari;
f.close();
g.close();
return 0;
}