Pagini recente » Cod sursa (job #1900872) | Cod sursa (job #1666857) | Cod sursa (job #1089071) | Cod sursa (job #888170) | Cod sursa (job #2176541)
#include<bits/stdc++.h>
#define NMAX 50
#define double long double
#define int long long
using namespace std;
int n,K,s[NMAX];
double rs;
double a[NMAX];
double f;
void BT(int k) {
if (k==K+1) {
double p=1;
for (int i=1; i<=K; i++) {
p*=a[s[i]];
}
rs+=p/f;
return;
}
for (int i=s[0]+1; i<=n; i++) {
s[k]=i;
s[0]=i;
BT(k+1);
}
}
double calc(int k, int n) {
double p=1;
for (int i=k+1; i<=n; i++) p*=i;
return p;
}
int32_t main() {
ifstream cin("dezastru.in");
ofstream cout("dezastru.out");
cin>>n>>K;
f=calc(K,n);
for (int i=1; i<=n; i++) cin>>a[i];
BT(1);
cout<<fixed<<setprecision(10)<<rs;
return 0;
}