比赛 |
暑假培训七 |
评测结果 |
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.