Cod sursa(job #214854)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 16 octombrie 2008 15:21:26
Problema Dezastru Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
int n,m=0,k,sol[30];
float a[30],s=0;
void read(){
    scanf("%d%d",&n,&k);
    for(int i=1; i<=n; ++i)
	   scanf("%f",&a[i]);}
int check(int val,int x){
    for(int j=1; j<=x; ++j)
	   if(sol[j]==val)
	       return 0;
    return 1;}
void back(int x){
    int i;
    float p;
    if(x==k+1){
	   ++m;
	   p=1;
	   for(i=1; i<=k; ++i)
	       p*=a[sol[i]];
       s+=p;}
    else
	   for(i=1; i<=n; ++i)
           if(check(i,x)){
		       sol[x]=i;
		       back(x+1);}}
void print(){
    s/=(float)m;
    printf("%.6f",s);}
int main(){
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    read();
    back(1);
    print();
    return 0;}