Cod sursa(job #1486971)

Utilizator buga.sebiBuga Eusebiu Mihail buga.sebi Data 15 septembrie 2015 20:03:03
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb

#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
 
double D[30][30];
int C[30][30];
int N,K;
int main(){
    fin >> N >> K;
    for(int i = 1;i<=N;i++){
        fin >> D[i][1];
        D[0][1] += D[i][1];
    }
     
    for(int i = 2;i<=K;i++){
        for(int j = 1;j<=N-i+1;j++){
            D[0][i-1]-=D[j][i-1]; 
            D[j][i] = D[j][1] * (D[0][i-1]);
            D[0][i]+=D[j][i];
        }   
    }
    for(int i = 1;i<=N;i++) C[i][1] = i;
    for(int i = 2;i<=N;i++)
        for(int j = 2;j<=i;j++)
            C[i][j] = C[i-1][j-1] + C[i-1][j];
     
    fout << fixed << setprecision(7) << double(D[0][K]/C[N][K]);
    return 0;
}