Pagini recente » Cod sursa (job #1151668) | Cod sursa (job #2626513) | Cod sursa (job #1765804) | Cod sursa (job #1808430) | Cod sursa (job #54317)
Cod sursa(job #54317)
#include<stdio.h>
int st[101],n,k,perm=0;
float v[100],s=0.0;
FILE*g=fopen("dezastru.out","w");
void initializari()
{
int i;
FILE*f=fopen("dezastru.in","r");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++){fscanf(f,"%f",&v[i]); st[i]=0; }
}
int valid(int p)
{
if(p>1&&st[p]<=st[p-1]) return 0;
else return 1;
}
void bkt(int p)
{
int pval,i;
float pr=1.0;
for(pval=1;pval<=n;pval++)
{
st[p]=pval;
if (valid(p))
{
if (p==k)
{
perm++;
pr=1.0;
for(i=1;i<=p;i++) pr*=v[st[i]];
s+=pr;}
else bkt(p+1);
}
}
}
void main()
{
initializari();
bkt(1);
fprintf(g,"%.6f",s/perm);
}