Pagini recente » Cod sursa (job #1944368) | Cod sursa (job #261934) | Cod sursa (job #2926678) | Cod sursa (job #2790879) | Cod sursa (job #254079)
Cod sursa(job #254079)
#include<iostream>
#include<stdio.h>
FILE *f=fopen("dezastru.in","r"),*g=fopen("dezastru.out","w");
float a[30];double aux=1,rez,fact=1;
int ut[30],st[30],n,t,nr;
void back(int k)
{
for(int pval=st[k-1]+1;pval<=n&&nr<fact;pval++)
{
st[k]=pval;
if(!ut[pval]&&k<=n)
{
ut[pval]=1;
if(k==t)
{
aux=1;
for(int i=1;i<=t;i++)
aux*=a[st[i]];
nr++;
rez+=aux;
ut[pval]=0;
}
else
back(k+1),ut[pval]=0;
}
}
}
int main()
{
fscanf(f,"%d%d",&n,&t);
for(int i=1;i<=n;i++)
fscanf(f,"%f",&a[i]);
for(int j=2;j<=n;j++)
fact*=j;
fact/=2;
back(1);
fprintf(g,"%6lf",rez/nr);
return 0;
}