Pagini recente » Cod sursa (job #1667415) | Cod sursa (job #425685) | Cod sursa (job #2287419) | Cod sursa (job #619073) | Cod sursa (job #958248)
Cod sursa(job #958248)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("dezastru.in");
ofstream out("dezastru.out");
int const N=26;
int n,k,total,p[N];
float suma,v[N];
bool marcat[N];
void combinari()
{
p[0]=1;
for(int i=1;i<N;i++)
p[i]=i*p[i-1];
/*
c[1][0]=c[0][0]=1;
for(int i=0;i<=n;i++)
for(int j=0;j<n;j++)
c[i+1][j+1]=c[i][j]+c[i][j+1];
*/
}
void back(int p, float rez)
{
if(p==k+1){suma+=rez/total;return;}
for(int i=1;i<=n;i++)
if(!marcat[i])
{
marcat[i]=true;
back(p+1,rez*v[i]);
marcat[i]=false;
}
}
int main()
{
in>>n>>k;
combinari();
total=p[n];
for(int i=1;i<=n;i++)
in>>v[i];
back(1,1);
out<<suma<<"\n";
return 0;
}