Pagini recente » Cod sursa (job #82837) | Cod sursa (job #1147431) | Cod sursa (job #2170746) | Monitorul de evaluare | Cod sursa (job #478549)
Cod sursa(job #478549)
/* Folosim recursivitatea pt generarea combinarilor (n, x)*/
#include <stdio.h>
using namespace std;
int c[30];
float nr[30];
float rez;
int n, m, j;
int nr_comb;
void combinari (int k)
{
int i;
float produs = 1;
if (k - 1 == m)
{
for (i=1; i<=m; ++i)
produs *= nr[c[i]];
produs *= 2;
rez += produs;
nr_comb ++;
}
else
{
for (i=c[k-1]+1; i<=n - m + k; ++i)
{
c[k] = i;
combinari (k + 1);
}
}
}
int main ()
{
FILE *f = fopen ("dezastru.in","r");
FILE *g = fopen ("dezastru.out","w");
fscanf (f,"%d %d", &n, &m);
for (j=1; j<=n; ++j)
fscanf (f,"%f", &nr[j]);
combinari (1);
nr_comb *= 2;
rez /= nr_comb;
fprintf (g, "%.6f", rez);
fclose (g);
fclose (f);
return 0;
}