比赛 暑假培训七 评测结果 AAAAAAAAAA
题目名称 渡轮问题 最终得分 100
用户昵称 苏轼 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-07-24 15:27:58
显示代码纯文本
program maxxl;
var cs:array[1..10000,1..3]of integer;
    n,i,j,max,tem,da:integer;
    f1:text;
begin
 assign(f1,'maxxl.in');
 reset(f1);

 readln(f1,n);

 for i:=1 to n do
 begin
  readln(f1,cs[i,1]);
  cs[i,2]:=1;
  cs[i,3]:=0;
 end;

 close(f1);

 da:=n;
 for i:=n-1 downto 1 do
 begin
  max:=0;
  for j:=i+1 to n do
   if (cs[j,1]>=cs[i,1])and(cs[j,2]>max) then
   begin
    max:=cs[j,2];
    cs[i,3]:=j;
   end;

  if (max<>0)or(cs[i,2]=cs[da,2]) then
  begin
   cs[i,2]:=max+cs[i,2];
   if cs[i,2]>=cs[da,2] then da:=i;
  end;
 end;

 assign(f1,'maxxl.out');
 rewrite(f1);
 writeln(f1,cs[da,2]);

 writeln(da);
 while da<>0 do
 begin
  write(f1,cs[da,1]);
  da:=cs[da,3];
  if da<>0 then
   write(f1,' ');
 end;
 close(f1);
end.