Cod sursa(job #37593)

Utilizator FlorianFlorian Marcu Florian Data 25 martie 2007 11:17:08
Problema Dezastru Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.57 kb
#include<stdio.h>
int main()
{float v[30],i,p,s=1.0;
int u[30],n,k;
FILE *f=fopen("dezastru.in","r");
FILE*g=fopen("dezastru.out","w");
fscanf(f,"%d %d",&n,&k);
for (i=1;i<=n;i++) {u[i]=0; fscanf(f,"%f",&v[i]);}
for(i=n;i>=n-k+1;i--) {u[i]=1;s*=v[i];}
int ok=1,poz=1,r,perm=1;
 poz=n-k+1;r=2;
while (ok==1)
	{
	  for (i=2;i<=n;i++)
		if (i==poz) {u[poz-1]=1;u[poz]=0; poz--;perm++;break;}
	if (u[r-1]==1) {poz=n-k+r;r++;}
	p=1.0;
	for (i=1;i<=n;i++) if (u[i]==1)p=p*v[i];
	s=s+p;
	if (u[k]==u[k-1]&&u[k]==1) break;
}
fprintf(g,"%.6f",(s+s)/(2*perm));
return 0;}