Cod sursa(job #696763)
| Utilizator | Data | 28 februarie 2012 19:58:03 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<fstream>
#include<iostream>
using namespace std;
double n,m,sol[26],a[26];
bool viz[26];
double sum=0;
int ct;
void back(int k){
int i;
if(k==m+1){
double prob=1;
for(i=1;i<=m;i++){
prob=prob*sol[i];
}
sum=sum+prob;
ct++;
}
else{
for(i=1;i<=n;i++){
if(viz[i]==0){
viz[i]=1;
sol[k]=a[i];
back(k+1);
viz[i]=0;
}
}
}
}
int main(){
ifstream f("dezastru.in");
ofstream g("dezastru.out");
f>>n>>m;
int i;
for(i=1;i<=n;i++){
f>>a[i];
}
back(1);
g<<(double)sum/ct;
return 0;
}