ac1108.pas

来自「这是在网络上搜集到的在东京大学的ACM上面解决的一些题目的源码」· PAS 代码 · 共 32 行

PAS
32
字号
program tju1108;
const
  maxn=100000;
var
  a,b:array[0..maxn+1]of longint;
  n,i,x,ans,l,r:longint;
begin
  repeat
    read(n);
    for i:=1 to n do begin
      read(x);b[x]:=i;
    end;
    for i:=1 to n do begin
      read(x);a[i]:=b[x];
    end;

    ans:=1;b[1]:=a[1];b[2]:=maxlongint;
    for i:=2 to n do begin
      l:=1;r:=ans+1;
      repeat
        x:=(l+r) shr 1;
        if a[i]<b[x] then
          if a[i]>b[x-1] then break else r:=x-1
        else
          l:=x+1;
      until false;
      b[x]:=a[i];if x>ans then begin inc(ans);b[x+1]:=maxlongint;end;
    end;
    writeln(ans);
  until seekeof;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?