Cod sursa(job #2156242)

Utilizator RaduhhRadu Flocea Raduhh Data 8 martie 2018 16:23:09
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

int n,k,i,j,lim,V[26];
double t[26],s;
int v[26];

int fq(int n)
{
    int q=1;
    for (int i=1; i<=n; i++)
        q*=i;
    return q;
}

double prq()
{
    double pr=t[v[0]];
    for (int i=1; i<k; i++)
        pr*=t[v[i]];
    return pr;
}

int main() 
{
    ifstream cin("dezastru.in");
    ofstream cout("dezastru.out");
    cin>>n>>k;
    for (i=1; i<=n; i++)
        cin>>t[i];
    
    int fqt=fq(n);
    for(i=k; i<n; ++i) V[i]=1;
    do {
        int poz=-1;
        for(i=0; i<n; ++i) if (!V[i]) v[++poz]=i+1;
    if (poz+1==k) { s=s*1.0+(prq()/fqt)*fq(k); }
    }while(std::next_permutation(V,V+n));
    
    cout<<fixed<<setprecision(6)<<s;
}