Cod sursa(job #1060925)

Utilizator tureanchristinetunich tureanchristine Data 18 decembrie 2013 21:46:20
Problema Dezastru Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.26 kb
program bactraking;
type vector=array[1..25] of integer;
var n,k,nr,p,i:-1..26;
ok:boolean;
x:vector;
f,g:text;
v:array[1..25] of real;
s:real;

procedure tipar(n:integer;x:vector);
var i:integer;
s1:real;
begin
s1:=1;
for i:=1 to nr do s1:=s1*(v[x[i]]);
s:=s+(s1/p);
end;


function valid(k:integer):boolean;
var i:longint;
begin
valid:=true;
for i:=1 to k-1 do if x[i]=x[k] then valid:=false;
end;


begin
assign(f,'dezastru.in');reset(f);
assign(g,'dezastru.out');rewrite(g);
readln(f,n,nr);
p:=1;
for i:=1 to n do begin read(f,v[i]);  p:=p*i; end;
s:=0;
k:=1;
x[k]:=0;
while k>0 do begin ok:=false;
                   while(x[k]<n)and(ok=false) do begin
                                                x[k]:=x[k]+1;
                                                if valid(k) then ok:=true;
                                                end;
                   if ok=false then k:=k-1
                                else if k=n then tipar(n,x)
                                            else begin
                                                k:=k+1;
                                                x[k]:=0;
                                                end;
                    end;
write(g,s:5:6);
close(f);
close(g);
end.