Cod sursa(job #2234858)

Utilizator MoldooooooooMoldoveanu Stefan Moldoooooooo Data 26 august 2018 11:30:38
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#define max(a, b) (a>b?a:b)
using namespace std;
int N, K, i, p, q;
float List[26][26];
long long int C;
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][0]); List[i][1]=List[i][0]+List[i-1][1];}
    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;
    i=2;
    for(p=2; p<=K; p++){
        for(q=i; q<=N; q++){
            List[q][p]=List[q-1][p]+List[q-1][p-1]*List[q][0];
        }
    }
    List[N][K]/=C;
    printf("%.6f", List[N][K]);
    return 0;
}