Pagini recente » Cod sursa (job #1074293) | Cod sursa (job #1217491) | Cod sursa (job #1532109) | Cod sursa (job #521209) | Cod sursa (job #1992154)
#include<fstream>
#include<iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
short N,K,st[26];
float v[26],s,p;
int long long P;
bool valid(int k){
for(int i=1;i<k;++i)
if(st[i]==st[k])
return false;
}
bool sol(int k){
return k==N;
}
void back(int k){
for(int x=1;x<=N;++x){
st[k]=x;
if(valid(k)){
if(sol(k)){
p=1;
for(int i=1;i<=K;++i)
p*=v[st[i]];
s+=p/P;
}else back(k+1);
}
}
}
int main()
{
f>>N>>K;
for(int i=1;i<=N;++i)
f>>v[i];
P=1;
for(int i=2;i<=N;++i)P*=i;
back(1);
g<<s<<setprecision(6);
return 0;
}