Pagini recente » Cod sursa (job #2304874) | Cod sursa (job #2159838) | Cod sursa (job #996601) | Cod sursa (job #1754669) | Cod sursa (job #2493367)
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int p,st[30],niv,n,m;
double v[30],s,nrapp;
double rezolv(int niv)
{
double p=1;
int i;
for(i=1;i<=niv;i++)
{
p=p*(v[st[i]]);
}
return p;
}
int validare(int niv)
{
int i;
for(i=1;i<niv;i++)
if(st[i]==st[niv]) return 0;
return 1;
}
void bkt(int niv)
{
int i;
for(i=1;i<=n;i++)
{
st[niv]=i;
if(validare(niv))
{
if(m==niv)
{
s=s+(rezolv(niv)/nrapp);
}
else bkt(niv+1);
}
}
}
int main()
{
fin>>n>>m;
nrapp=1;
for(int i=2;i<=n;i++)
{
nrapp*=i;
}
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
bkt(1);
fout<<s;
}