比赛 20110729 评测结果 AAAAAAAAAAAA
题目名称 最后的利益 最终得分 100
用户昵称 ybh 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2011-07-29 10:21:05
显示代码纯文本
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.