Pagini recente » Cod sursa (job #2896134) | Cod sursa (job #2244801) | Cod sursa (job #2736251) | Cod sursa (job #875421) | Cod sursa (job #2493373)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k,st[27];
double a[27],s,nr;
int validare(int niv)
{
int i,ok=1;
for(i=1;i<niv;i++)
if(st[i]==st[niv])
ok=0;
return ok;
}
int solutie(int niv)
{
if(niv==k)
return 1;
else
return 0;
}
void inmultire(int niv)
{
int i;
double m;
m=1.0;
for(i=1;i<=niv;i++)
m=a[st[i]]*m;
s=s+m;
}
void bck(int niv)
{
int i;
for(i=1;i<=n;i++)
{
st[niv]=i;
if(validare(niv)==1)
{
if(solutie(niv)==1)
{
inmultire(niv);
nr++;
}
else
bck(niv+1);
}
}
}
int main()
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>a[i];
bck(1);
fout<<s/nr;
fin.close();
fout.close();
return 0;
}