Cod sursa(job #37907)

Utilizator al3csutzuSirbu Alexandru al3csutzu Data 25 martie 2007 13:03:13
Problema Dezastru Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.35 kb
program dezastru;
var f,g:text;
n,i,k,j,i2,i3,i1:integer;
a:array[1..25] of real;
x1:array[1..25,1..25] of real;
aux:longint;
prob:real;
begin
  assign(f,'dezastru.in'); assign(g,'dezastru.out');
  reset(f); rewrite(g);
  read(f,n,k);
  for i:=1 to n do read(f,a[i]);
  prob:=0;
  aux:=1;
  for i:=1 to n do aux:=aux*i;
  if k=1 then
    for i:=1 to n do
    prob:=prob+a[i]/n;
  if k=2 then
  begin
    for i:=1 to n do
      for j:=1 to n do
        if i<>j then prob:=prob+(a[i]*a[j])/aux
  end
  else
  if k=3 then
  begin
    for i:=1 to n do
      for j:=1 to n do
        for i2:=1 to n do
          if (i<>j) and (j<>i2) and (i<>i2) then prob:=prob+(a[i]*a[j]*a[i2])/aux;
          end
  else if k=4 then
  begin
    for i:=1 to n do
      for j:=1 to n do
        for i2:=1 to n do
          for i1:=1 to n do
          if (i<>j) and (j<>i2) and (i<>i2) and (i<>i1) and (j<>i1) and (i2<>i1)
            then prob:=prob+(a[i]*a[j]*a[i2]*a[i1])/aux;
  end
  else if k=5 then
  begin
   for i:=1 to n do
    for j:=1 to n do
      for i2:=1 to n do
        for i1:=1 to n do
         for i3:=1 to n do
   if  (i<>j) and (j<>i2) and (i<>i2) and (i<>i1) and (j<>i1) and (i2<>i1) and (i<>i3) and (j<>i3) and (i2<>i3) and (i1<>i3)
   then prob:=prob+(a[i]*a[j]*a[i2])/aux;
  end;


  write(G,prob:0:6);
  close(f); close(g);
end.