Cod sursa(job #2405039)

Utilizator bluestorm57Vasile T bluestorm57 Data 13 aprilie 2019 20:44:55
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#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])
            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 main(){
    int i;
    f >> n >> m;

    for(i = 1 ; i <= n; i++)
        f >> v[i];

    back();

    //g << suma;
    g << (double) suma / nr;
return 0;
}