Cod sursa(job #1497140)

Utilizator alin1999Buzatu Alin alin1999 Data 6 octombrie 2015 10:39:09
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, m, i, P;
float v[30], st;

void back(int k, int a, float p){
    if(k==m+1)
    {
        st+=p;
        return;
    }
    for(int i=a; i<=n; i++)
    {
        if(k+(n-i+1)<m)
            return;
        p*=v[i];
        back(k+1, i+1, p);
        p/=v[i];
    }
}

int main(){
    f>>n>>m;
    for(i=1; i<=n; i++)
        f>>v[i];
    sort(v+1, v+n+1);
    if(n==1)
    {
        g<<v[1]<<"\n";
        return 0;
    }
    P=1;
    for(i=3; i<=n; i++)
        P*=i;
    back(1, 1, 1);
    g<<st/P<<"\n";
    return 0;
}