Cod sursa(job #2234636)

Utilizator MoldooooooooMoldoveanu Stefan Moldoooooooo Data 25 august 2018 21:53:05
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
#define max(a, b) (a>b?a:b)
using namespace std;
int N, K, i, p, q;
float List[26], S;
long long int C;
void Solve(int i, float P, int c){
    if(i==K+1) {S+=P; return;}
    int j;
    for(j=c+1; j<=N; j++) Solve(i+1, P*List[j], j);
    return;
}
int main(){
    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);
    scanf("%d%d", &N, &K);
    for(i=1; i<=N; i++) scanf("%f", &List[i]);
    C=1;
    p=max(K, N-K);
    q=N-p;
    for(i=p+1; i<=N; i++)C*=i;
    for(i=q; i>=2; i--)C/=i;
    Solve(1, 1, 0);
    S/=C;
    printf("%.6f", S);
    return 0;
}