Cod sursa(job #37625)

Utilizator mirela_pMirela Popoveniuc mirela_p Data 25 martie 2007 11:30:38
Problema Dezastru Scor 20
Compilator c Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.71 kb
// 25! = 15511210043330985984000000
#include<stdio.h>
#include<math.h>
void citire();
FILE *f,*g;
int n,k,i,per,p=1,m;
float a[30],ff=0,s=0;
long int x=1,y=1;
int main()
{
f=fopen("dezastru.in","r");
g=fopen("dezastru.out","w");
citire();

if(n-k>=k+1)
		{
		for(i=n-k+1;i<=n;i++) x*=i;
		for(i=1;i<=k;i++) y*=i;
		}
			else

		{
		for(i=k+1;i<=n;i++) x*=i;
		for(i=2;i<=n-k;i++) y*=i;
		}
		



per=x/y*2;
//m=per*k; // de cate ori apare fiecare (era /n, up)

for(i=1;i<=n;i++) ff+=a[i]*(s-a[i]);
ff=(float)ff/per;
if(n==1) ff=a[1];

fprintf(g,"%.6f",ff);


fcloseall();
return 0;
}


void citire()
{fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;i++) {fscanf(f,"%f",&a[i]);s+=a[i];}
}