Cod sursa(job #1088800)

Utilizator StexanIarca Stefan Stexan Data 20 ianuarie 2014 20:41:39
Problema Dezastru Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <iomanip>
using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

#define NMAX 30

int N,K,x[NMAX];
double cost[NMAX],CostSum,Prod = 1.0,Nr;


bool solutie ( int k ){
    return ( k == K+1 );
}

void back(int k){
    int i;
    if(solutie(k))
    {
        CostSum += Prod;
        ++Nr;
    }
    for(i = x[k-1]+1; i<=N; i++){
        x[k]=i;
        Prod *= cost[i];
        back(k+1);
        Prod /= cost[i];
    }
}


int main(int argc, const char * argv[])
{

    f>>N>>K;
    
    for (int i = 1; i <= N; ++i) {
        f>>cost[i];
    }
    
    back(1);
    
    g<<setprecision(6)<<CostSum/Nr;
    return 0;
}