Cod sursa(job #699720)
| Utilizator | Data | 29 februarie 2012 20:57:38 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<fstream>
#define dim 30
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
double v[dim],s;
int x[dim];
bool b[dim];
int n,c,i,nr;
void back(int k){
if(k>c){
double p=1;
for(int i=1;i<=c;i++)
p*=v[x[i]];
s+=p;
nr++;
return ;
}
for(int i=1;i<=n;i++){
if(!b[i]){
b[i]=1;
x[k]=i;
back(k+1);
b[i]=0;
}
}
}
int main (){
f>>n>>c;
for(i=1;i<=n;i++)
f>>v[i];
back(1);
g<<s/nr;
return 0;
}