Pagini recente » Cod sursa (job #266636) | Cod sursa (job #2454350) | Cod sursa (job #2186041) | Cod sursa (job #116980) | Cod sursa (job #750362)
Cod sursa(job #750362)
#include<stdio.h>
#define NMAX 26
int sol[5], m[ NMAX ], n, k, i, j, x;
double v[ NMAX ], s, res;
void read()
{
FILE *f = fopen("dezastru.in", "r");
fscanf(f, "%d %d", &n, &k);
for(i = 1; i <= n; i++)
fscanf(f, "%lf", &v[i]);
fclose(f);
}
void back(int nr)
{
int i;
double p;
if(nr > k)
{
p = 1;
for(i = 1; i <= k; i++)
p *= v[ sol[i] ];
s += p, x++;
}
else
{
for(i = 1; i <= n; i++)
if(!m[i])
{
sol[nr] = i, m[i] = 1;
back(nr+1);
m[i] = 0;
}
}
}
void write()
{
FILE *g = fopen("dezastru.out", "w");
res = (double) s / x;
fprintf(g, "%lf\n", res);
fclose(g);
}
int main()
{
read();
back(1);
write();
return 0;
}