Cod sursa(job #2518583)

Utilizator betybety bety bety Data 5 ianuarie 2020 23:36:28
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <algorithm>
#include <iomanip>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
bool f[28];
long double v[28];
int main()
{
    int n,k;
    in>>n>>k;
    for(int i=1;i<=n;++i)
        in>>v[i];
    for(int i=n-k+1;i<=n;++i)
        f[i]=1;
    long double sum=0.000000000;
    do
    {
        long double p=1.000000000;
        for(int i=1;i<=n;++i)
        if(f[i]==1)
            p*=v[i];
        sum+=p;

    }while(next_permutation(f+1,f+n+1));
    for(int i=1;i<=n-k;++i)
    {
        long double div=i*1.000000000;
        sum*=div;
    }
    for(int i=k+1;i<=n;++i)
    {
        long double div=i*1.000000000;
        sum/=div;
    }
    out<<setprecision(10)<<sum;
    return 0;
}