Cod sursa(job #2450029)

Utilizator CharacterMeCharacter Me CharacterMe Data 21 august 2019 16:50:05
Problema Dezastru Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
///N=25
///K=25
using namespace std;
int n, k, i, j;
float val[26], fact[26], sol[26], prod, out;
void read();
void solve();
void write();
void bkt(int i);
int main()
{
    read();
    solve();
    write();
    return 0;
}
void read(){
    freopen("dezastru.in", "r", stdin);
    scanf("%d%d", &n, &k);
    for(i=1; i<=n; ++i) scanf("%f", &val[i]);
    fclose(stdin);
}
void solve(){
    fact[1]=1.0; prod=1.0; out=0.0;
    for(i=2; i<=n; ++i) fact[i]=fact[i-1]*i;
    bkt(0);
}
void write(){
    freopen("dezastru.out", "w", stdout);
    printf("%f", out);
    fclose(stdout);
}
void bkt(int i){
    if(i==k) {out+=((fact[i]*prod*fact[n-i])/fact[n]); return;}
    for(int j=sol[i]+1; j<=n; ++j){
        sol[i+1]=j;
        prod*=val[j];
        bkt(i+1);
        prod/=val[j];
    }
}