Pagini recente » Cod sursa (job #2454646) | Cod sursa (job #839273) | Cod sursa (job #309223) | Cod sursa (job #1584363) | Cod sursa (job #369001)
Cod sursa(job #369001)
// http://infoarena.ro/problema/dezastru
#include<iostream>
#include<fstream>
using namespace std;
int n,k,x[20];
float p[26],pa=1,pt,nrc;
FILE * fin, * fout;
void back(int j)
{
int i;
for(i=x[j-1]+1;i<=n;i++)
{
x[j]=i;
pa*=p[x[j]];
if(j==k)
{
pt+=pa;
nrc++;
}
else
back(j+1);
pa/=p[x[j]];
}
}
int main()
{
fin = fopen ("dezastru.in", "r");
fout = fopen ("dezastru.out","w");
fscanf(fin,"%d %d", &n, &k);
for(int i=1;i<=n;i++)
fscanf(fin, "%f",&p[i]);
back(1);
pt=pt/nrc;
//fprintf(fout,"%d %d \n", n, k);
//for(int i=1;i<=n;i++)
// fprintf(fout, "%.2f",p[i]);
fprintf(fout,"%.6f", pt);
return 0;
}