Pagini recente » Cod sursa (job #300066) | Cod sursa (job #1679569) | Cod sursa (job #1310614) | Cod sursa (job #272255) | Cod sursa (job #902052)
Cod sursa(job #902052)
#include <cstdio>
using namespace std;
int i,n,d,x[30],use[30];
double a[30],s,sol;
long long p;
void back(int k)
{int i;
for (i=1;i<=n;i++)
if (!use[i])
{x[k]=i;use[i]=1;
s*=a[i];
if (k==d) sol+=s/p;
else back(k+1);
s/=a[i];use[i]=0;
}
}
int main()
{FILE *f1 = fopen("dezastru.in","r");
FILE *f2 = fopen("dezastru.out","w");
fscanf(f1,"%d%d",&n,&d);
for (i=1;i<=n;i++) fscanf(f1,"%lf",&a[i]);
p=n-d+1;
for (i=n-d+2;i<=n;i++) p=p*i;s=1;
back(1);
fprintf(f2,"%.6lf",sol);
fclose(f1);fclose(f2);
return 0;
}