比赛 暑假培训七 评测结果 AAWAWWWAAW
题目名称 渡轮问题 最终得分 50
用户昵称 EnAsn 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-07-24 17:43:27
显示代码纯文本
program ex(f1,f2);
 type
  zn=array [1..10001,1..3] of integer;
 var
  f1,f2:text;
  a:zn;
  i,j,p,l,n:integer;
 begin
  assign(f1,'maxxl.in');
  assign(f2,'maxxl.out');
  reset(f1);
  rewrite(f2);
  readln(f1,n);
  for i:=1 to n do
   begin
    read(f1,a[i,1]);
    a[i,2]:=1;
    a[i,3]:=0;
   end;
  for i:=n-1 downto 1 do
   begin
    l:=0; p:=0;
    for j:=i+1 to n do
     if (a[j,1]>a[i,1])and(a[j,2]>l)
      then
       begin
        l:=a[j,2];
        p:=j;
       end;
    if p<>0 then
     begin
      a[i,2]:=l+1;
      a[i,3]:=p;
     end;
   end;
   l:=0; p:=0;
   for i:=1 to n do
    if a[i,2]>l then
    begin
     l:=a[i,2];
     p:=i;
    end;
   writeln(f2,l);
   while p<>0 do
    begin
     write(f2,a[p,1],' ');
     p:=a[p,3];
    end;
   close(f1);
   close(f2);
  end.