Cod sursa(job #54317)

Utilizator FlorianFlorian Marcu Florian Data 24 aprilie 2007 18:48:22
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#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);
	}