记录编号 |
26906 |
评测结果 |
AAAAAAAAAAAA |
题目名称 |
最后的利益 |
最终得分 |
100 |
用户昵称 |
ybh |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.061 s |
提交时间 |
2011-07-29 15:35:38 |
内存使用 |
0.31 MiB |
显示代码纯文本
{最后的利益 2011/07/29NOI模拟赛
动态规划
Author: yangbohua
Time: 2011-07-29}
program a9cwy;
var
t:array[0..10010,1..2] of longint;
f:array[0..30010] of longint;
n,len,i,j,y:longint;
procedure sort(l,r:longint);
var
i,j,x,y:longint;
begin
x:=t[(l+r) div 2,2];
i:=l;
j:=r;
repeat
while t[i,2]<x do inc(i);
while t[j,2]>x do dec(j);
if i<=j then
begin
y:=t[i,1]; t[i,1]:=t[j,1]; t[j,1]:=y;
y:=t[i,2]; t[i,2]:=t[j,2]; t[j,2]:=y;
inc(i); dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin
assign(input,'9cwy.in');
reset(input);
assign(output,'9cwy.out');
rewrite(output);
readln(n);
for i:=1 to n do
begin
readln(t[i,1],t[i,2]);
if t[i,1]>t[i,2] then
begin
y:=t[i,1]; t[i,1]:=t[i,2]; t[i,2]:=y;
end;
end;
sort(1,n);
j:=0;
len:=0;
for i:=1 to n do
begin
while j<t[i,2] do
begin
inc(j);
f[j]:=len;
end;
if f[t[i,1]]+t[i,2]-t[i,1]>f[t[i,2]] then
begin
f[t[i,2]]:=f[t[i,1]]+t[i,2]-t[i,1];
if f[t[i,2]]>len then len:=f[t[i,2]];
end;
end;
writeln(f[t[n,2]]);
close(input);
close(output);
end.