Pagini recente » Cod sursa (job #305481) | Cod sursa (job #880318) | Cod sursa (job #279073) | Cod sursa (job #1599689) | Cod sursa (job #686516)
Cod sursa(job #686516)
#include <fstream>
#include <iomanip>
using namespace std;
long long 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;
}