📄 dog.pas
字号:
program dog;
var
inn,out:text;
x,y,d,xr,yr,pl,mi:array[0..100001] of longint;
i,j,n,plus,minus:longint;
begin
assign (inn,'dog.in');
assign (out,'dog.out');
reset (inn);
readln (inn,n);
mi[0]:=maxlongint;
for i:=1 to n do
begin
readln (inn,x[i],y[i],d[i]);
pl[i]:=pl[i-1];
if x[i]+y[i]>pl[i] then pl[i]:=x[i]+y[i];
mi[i]:=mi[i-1];
if x[i]-y[i]<mi[i] then mi[i]:=x[i]-y[i];
end;
{d[n+1]:=maxlongint; x[n+1]:=1000000; y[n+1]:=1000000;}
close (inn);
xr[n+1]:=x[n];
yr[n+1]:=y[n]-d[n];
d[n+1]:=d[n];
for i:=n downto 1 do
begin
xr[i]:=xr[i+1];
yr[i]:=yr[i+1]-d[i+1]+d[i];
{writeln (xr[i],'.',yr[i]);
readln;}
for j:=i to i do
begin
if xr[i]+yr[i]<pl[j]-d[j] then plus:=pl[j]-d[j]
else plus:=xr[i]+yr[i];
if xr[i]-yr[i]>mi[j]+d[j] then minus:=mi[j]+d[j]
else minus:=xr[i]-yr[i];
xr[i]:=(plus+minus)div 2;
yr[i]:=(plus-minus+1)div 2;
{writeln (xr[i],' ',yr[i]);
readln;}
{x[i]
y[i]+d[i]}
end;
end;
rewrite (out);
for i:=1 to n do
begin
writeln (out,xr[i],' ',yr[i]);
end;
close (out);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -