Pagini recente » Monitorul de evaluare | Diferente pentru preoni-2007/runda-3/solutii intre reviziile 41 si 40 | Profil NuiNimic | Monitorul de evaluare | Cod sursa (job #2002024)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n, m;
double val[26];
int st[26], nrDez;
bool viz[26];
double dez[26];
void citire(){
in >> n >> m;
for(int i = 1; i <= n; i++)
in >> val[i];
}
void bkt(int k){
for(int i = 1; i <= n; i++)
if(viz[i] == false){
st[k] = i;
viz[i] = true;
if(k == n){
nrDez++;
dez[nrDez] = val[st[1]] * val[st[2]];
}
else
bkt(k + 1);
viz[i] = false;
}
}
void rezolvare(){
double raspuns = 0;
for(int i = 1; i <= nrDez; i++)
raspuns += (dez[i] / nrDez);
out << raspuns;
}
int main(){
citire();
bkt(1);
rezolvare();
return 0;
}