Pagini recente » Cod sursa (job #1028438) | Cod sursa (job #1644757) | Cod sursa (job #4775) | Cod sursa (job #2340848) | Cod sursa (job #686508)
Cod sursa(job #686508)
#include <fstream>
#include <iomanip>
using namespace std;
int st[26],factorial,n,K;
float suma,v[26];
int valid(int k)
{
for(int i=1;i<=k-1;i++)
if (st[i]==st[k])
return 0;
return 1;
}
void back(int k)
{
float pr;
for(int i=1;i<=n;i++)
{
pr=1;
st[k]=i;
if (valid(k))
{ if(k==K)
{
for (int j=1;j<=k;j++)
pr=pr*v[st[j]];
suma=suma+pr/factorial;
}
else
back(k+1);
}
}
}
int main (void)
{
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int i;
suma=0;
in>>n>>K;
factorial=1;
for (i=1;i<=n;i++)
{
factorial=factorial*i;
in>>v[i];
}
back(1);
out<<fixed<<setprecision(6)<<suma;
in.close();
out.close();
return 0;
}