Pagini recente » Cod sursa (job #869077) | Cod sursa (job #750145) | Cod sursa (job #1783329) | Cod sursa (job #404712) | Cod sursa (job #559949)
Cod sursa(job #559949)
#include<fstream>
using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");
int sol[30],n,used[30],k,cate;
double a[30],s=0;
void calc()
{
double p=1;
for(int i=1; i<=n; i++)
{
if(sol[i])
p=p*a[i];
}
p=(double)p/cate;
s+=(p*2);
}
bool valid()
{
int l=0;
for(int i=1; i<=n; i++)
if(sol[i])
l++;
if(l==k)
return 1;
return 0;
}
void back(int pas)
{
if(pas>n)
{
if(valid())
calc();
return;
}
sol[pas]=1;
back(pas+1);
sol[pas]=0;
back(pas+1);
}
int main()
{
fi>>n>>k;
cate=1;
for(int i=1; i<=n; i++)
{
fi>>a[i];
cate=cate*i;
}
back(1);
fo<<s;
fi.close();
fo.close();
return 0;
}