Pagini recente » Cod sursa (job #3123721) | Tnia | Profil vanila0406 | Monitorul de evaluare | Cod sursa (job #3120744)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int sol[26], n, k;
double valori[26];
double medie=0.0;
double nr=1;
bool ok(int i, int isol){
for (int j=1; j<isol; ++j)
if (sol[j]==i)
return 0;
return 1;
}
void bkt(int isol){
for (int i=1; i<=n; ++i){
sol[isol]=i;
//cout<<isol<<' ';
if (ok(i, isol)==1){
if (isol==k){
double produs=1.0;
for (int j=1; j<=k; ++j)
produs*=valori[sol[j]];
medie+=produs; //aci sa fac impartire poate
}
}else continue;
if (isol < k)
bkt(isol+1);
}
}
int main(){
////////sa fac in doua feluri ,sa le impart la final si daca nu merge sa le impart cand le pun in medie direct
fin>>n>>k;
for (int i=1; i<=n; ++i)
fin>>valori[i];
bkt(1);
for (int i=2; i<=n; ++i)
nr*=i;
fout<<medie/nr;
}