记录编号 1810 评测结果 AAAAAAAAAA
题目名称 渡轮问题 最终得分 100
用户昵称 Gravatarzhai 是否通过 通过
代码语言 Pascal 运行时间 10.000 s
提交时间 2008-09-08 19:58:42 内存使用 0.00 MiB
显示代码纯文本
program maxxl;
  var
    a:array[1..3,1..10000]of integer;
    f1,f2:text;
    n:integer;
    i,j,k,l:integer;
    procedure ini;
      var
        i:integer;
      begin
        assign(f1,'maxxl.in');reset(f1);
        assign(f2,'maxxl.out');rewrite(f2);
        readln(f1,n);
        for i:=1 to n do readln(f1,a[1,i]);
        for i:=1 to n do a[2,i]:=1;
        for i:=1 to n do a[3,i]:=0;
        close(f1);
      end;
    procedure print;
      var
        i,j,k,l:integer;
      begin
        k:=0;
        for i:=n downto 1 do
          if a[2,i]>=k then begin
            k:=a[2,i];
            j:=i;
          end;
        writeln(f2,k);
        for l:=1 to k-1 do begin
          write(f2,a[1,j],' ');
          j:=a[3,j];
        end;
        write(f2,a[1,j]);
      end;
  begin
    ini;
    for i:=n-1 downto 1 do begin
      l:=0;
      k:=0;
      for j:=i+1 to n do begin
        if (a[1,j]>=a[1,i])and(a[2,j]>l)then
         begin
          l:=a[2,j];
          k:=j;
         end;
        if l>0 then begin
          a[2,i]:=l+1;
          a[3,i]:=k;
        end;
      end;
    end;
    print;
    close(f2);
  end.