Pagini recente » Cod sursa (job #1673735) | Cod sursa (job #1106096) | Cod sursa (job #1418315) | Cod sursa (job #1674916) | Cod sursa (job #37916)
Cod sursa(job #37916)
#include<fstream.h>
#include<iomanip.h>
long long n,p[40],uz[40],nr,k,i,x;
float a[26];
ofstream g("dezastru.out");
void afisare()
{
float rez=1,s,l;
for(i=1;i<=k;i++)
rez=rez*a[p[i]];
s=s+rez/x;
l++;
if(l==x)
g<<(setprecision(6))<<s<<"\n";
}
long long fact(long long n)
{
if(!n)
return 1;
return n*fact(n-1);
}
void genpermutari(int k)
{
if(k-1==n)
afisare();
else
for(int i=1;i<=n;i++)
if(!uz[i])
{
p[k]=i;
uz[i]=1;
genpermutari(k+1);
uz[i]=0;
}
}
int main()
{
ifstream f("dezastru.in");
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
x=fact(n)/fact(n-k);
genpermutari(1);
g.close();
return 0;
}