Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
program robot;
var t1,t2:text;
db,i:longint;
x,y:array[1..10002] of integer;
d1,d2,d3:array[1..10002] of longint;
opt:array[1..10002] of longint;
ki:array[1..10002] of integer;
function max(a,b,c:longint):longint;
var l:longint;
begin l:=a; if b>l then l:=b; if c>l then l:=c; max:=l; end;
function min(a,b,c:longint):longint;
var l:longint;
begin l:=a; if b<l then l:=b; if c<l then l:=c; min:=l; end;
function mi(a,b,c:longint):longint;
var l:longint;
begin l:=a; if b<l then l:=b; if c<l then l:=c;
if l=a then mi:=1; if l=b then mi:=2; if l=c then mi:=3; end;
begin
assign(t1,'robot.be'); reset(t1);
readln(t1,db); for i:=1 to db do readln(t1,x[i],y[i]); close(t1);
assign(t2,'robot.ki'); rewrite(t2);
if db>2 then begin
for i:=1 to db do d1[i]:=(x[i]+y[i]);
for i:=1 to db-1 do d2[i]:=max(x[i],x[i+1],0)+max(y[i],y[i+1],0);
for i:=1 to db-2 do d3[i]:=max(x[i],x[i+1],x[i+2])+max(y[i],y[i+1],y[i+2]);
opt[db]:=d1[db]; ki[db]:=1;
opt[db-1]:=d1[db-1]+opt[db]; ki[db-1]:=1;
if d2[db-1]<opt[db-1] then begin opt[db-1]:=d2[db-1]; ki[db-1]:=2 end;
for i:=db-2 downto 1 do begin
opt[i]:=min(d1[i]+opt[i+1],d2[i]+opt[i+2],d3[i]+opt[i+3]);
ki[i]:=mi(d1[i]+opt[i+1],d2[i]+opt[i+2],d3[i]+opt[i+3]);
end;
writeln(t2,opt[1]*2); i:=1; while i<=db do
begin write(t2,ki[i],' '); i:=ki[i]+i; end;
end else begin
if db=2 then writeln(t2,max(x[1],x[2],0)*2+max(y[1],y[2],0)*2);
if db=1 then writeln(t2,x[1]*2+y[1]*2); writeln(t2,db);
end;
close(t2);
end.