Cod sursa(job #174183)

Utilizator jupanu92Anonim jupanu92 Data 8 aprilie 2008 16:57:05
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<math.h>

long s[30],n,c,k,nr=0,util[26];
double  v[30],p,sf,re;

void citire(long i)
{
 if(i<=n)
   {scanf("%lf",&v[i]);
    citire(i+1);
    }
 }

 void back(long int k)
{long int i,j;

 int ok;
 if(k==c)
    {double p=1;
     for(i=1;i<=c;i++)
	   p=p*v[s[i]];

     nr++;
     sf=sf+p;
     }
    else
      { for(i=1;i<=n;i++)
            if(!util[i])  
	         {s[k]=i;
                  util[i]=1; 
		  back(k+1);
                  util[i]=0;
		 }
	 }
}


int main()
{
  freopen("dezastru.in","r",stdin);
  freopen("dezastru.out","w",stdout);
  scanf("%ld %ld",&n,&c);
  citire(1);
  sf=0;
  back(1);
  re=sf/nr;
  printf("%6lf ",re);

  return 0;
  }