Pagini recente » Cod sursa (job #1996404) | Cod sursa (job #786487) | Cod sursa (job #1979164) | Cod sursa (job #2415794) | Cod sursa (job #663262)
Cod sursa(job #663262)
#include<iostream>
#include<fstream>
#include<algorithm>
#include<iomanip>
using namespace std;
float s,p;
float a[30];
unsigned long long int fact;
void lucru(int x[], int k, int n)
{
int i;
p=1;
for(i=1;i<=k;i++)
p=p*(a[x[i]]);
s=s+p;
fact++;
}
void comb(int x[],int n, int k, int poz)
{
int i;
for (i=x[poz-1]+1;i<=n;i++)
{
x[poz]=i;
if (poz==k)
lucru(x,k,n);
else
comb(x,n,k,poz+1);
}
}
int main(void)
{
int n,k,i,x[26];
fstream f("dezastru.in",ios::in),g("dezastru.out",ios::out);
f>>n>>k;
for (i=1;i<=n;i++)
{
f>>a[i];
//x[i]=i;
}
fact=0;
/*for (i=1;i<=n;i++)
fact*=i;
*/
x[0]=0;
comb(x,n,k,1);
//cout<<fact;
g<<fixed<<setprecision(6)<<double(s/fact);
}