Pagini recente » Cod sursa (job #1968884) | Cod sursa (job #1811026) | Cod sursa (job #1259073) | Cod sursa (job #448654) | Cod sursa (job #945357)
Cod sursa(job #945357)
#include <cstdio>
//FILE *f=fopen("pb3.in","r");
FILE *f=fopen("dezastru.in","r");
FILE *g=fopen("dezastru.out","w");
using namespace std;
int v[20],used[20],n,m;
double total,vect[20];
void sum()
{
double part=1;
for(int i=1;i<=m;i++)part*=vect[v[i]];
total+=part;
}
void back(int k)
{
for(v[k]=1;v[k]<=n;v[k]++)
if(!used[v[k]]&&v[k]>v[k-1])
{
used[v[k]]=1;
if(k<m)
back(k+1);
else
sum();
used[v[k]]=0;
}
}
int main()
{
fscanf(f,"%d%d",&n,&m);
for(int i=1;i<=n;i++)fscanf(f,"%lf",&vect[i]);
back(1);
for(int i=2;i<=n;i++)
total/=i;
for(int i=2;i<=n-m;i++)
total*=i;
fprintf(g,"%.6lf",2*total);
return 0;
}