Cod sursa(job #1741667)

Utilizator Dan_RadulescuRadulescu Dan Dan_Radulescu Data 14 august 2016 17:52:09
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
#include<iomanip>
#include<stdlib.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
float s,p=1,v[26],finalv;
long long fact[26];
int n,k,i,x[26];
void backt(int i){
    int j;
    if (i>k){
        s=s+p*(float)fact[k];
    }
       else{
          for (j=x[i-1]+1;j<=n;j++){
              x[i]=j;
              p=p*v[x[i]];
              backt(i+1);
              p=p/v[x[i]];
          }
       }
}
int main(){
    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>v[i];
    fin.close();
    fact[0]=1;
    for (i=1;i<=n;i++)
        fact[i]=fact[i-1]*i;
    x[0]=0;
    backt(1);
    finalv=s/(float)fact[n];
    fout<<fixed<<setprecision(6)<<finalv;
    fout.close();
    return 0;
}