Cod sursa(job #2524882)

Utilizator betybety bety bety Data 16 ianuarie 2020 15:12:22
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <algorithm>
#include <iomanip>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
bool f[28];
float 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;
    float sum=0.000000000;
    do
    {
        float 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)
    {
        float div=i*1.000000000;
        sum*=div;
    }
    for(int i=k+1;i<=n;++i)
    {
        float div=i*1.000000000;
        sum/=div;
    }
    out<<setprecision(7)<<sum;
    return 0;
}