Pagini recente » Cod sursa (job #1468443) | Cod sursa (job #2855240) | Cod sursa (job #2101563) | Cod sursa (job #3254726) | Cod sursa (job #639613)
Cod sursa(job #639613)
#include <fstream>
using namespace std;
FILE *f;
int n,k,m,st[25],contor = 0;
double a[25],s = 0;
void solve()
{
double p = 1;
contor++;
for(int i=1; i<=m; i++)
p *= a[st[i]];
s += p;
}
int valid(int k, int c)
{
for(int i=0; i<k; i++)
if(st[i] == c)
return 0;
return 1;
}
void back(int k)
{
if(k == n+1)
solve();
else
for(int i=1; i<=n; i++)
if(valid(k,i))
{
st[k] = i;
back(k+1);
}
}
int main()
{
f = fopen("dezastru.in","r");
fscanf(f,"%d %d", &n,&m);
for(int i=1; i<=n; i++)
fscanf(f,"%lf", &a[i]);
back(1);
f = fopen("dezastru.out","w");
fprintf(f,"%0.6lf", s/contor);
return 0;
}