Pagini recente » Cod sursa (job #2644721) | Cod sursa (job #3155127) | Cod sursa (job #2140023) | Cod sursa (job #3152119) | Cod sursa (job #2405043)
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,m;
int st[30];
double v[30];
int nr;
double suma;
void tipar2(){
int i;
for(i = 1 ; i <= m ; i++){
g << st[i] << " ";
}
g << "\n";
}
void tipar(){
int i;
double x = 1;
++nr;
for(i = 1 ; i <= m; i++)
x *= v[st[i]];
suma += x;
// g << x << "\n";
}
bool valid (int k){
int i;
for(i = 1 ; i < k ; i++)
if(st[i] == st[k] || st[i] < st[i+1])
return 0;
return 1;
}
void back(){
int k = 1;
st[k] = 0;
while(k){
while(st[k] < n){
st[k] ++;
if(valid(k))
if(k == m)
tipar();
else{
k++;
st[k] = 0;
}
}
k--;
}
}
int factorial(int x){
if(x > 1) return factorial(x-1);
return 1;
}
int main(){
int i;
f >> n >> m;
for(i = 1 ; i <= n; i++)
f >> v[i];
back();
//suma = suma * factorial(m);
//nr = nr * factorial(m);
//g << suma;
g << (double) suma / nr;
return 0;
}