p1463.pas

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 68 行

PAS
68
字号
PROGRAM p1463;

VAR
        f                       :Text;
        part,p                  :Integer;
        order                   :String;
        ans                     :array[1..100,0..100]of String;
        temp                            :String;
PROCEDURE Main;
var
        l,i,k                   :Integer;
        temp                    :String;
begin
for i:=1 to length(order) do begin
        ans[i][0]:='';
        case order[i] of
                '('             :ans[i][1]:='()';
                ')'             :ans[i][1]:='()';
                '['             :ans[i][1]:='[]';
                ']'             :ans[i][1]:='[]';
        end;
        end;
for l:=2 to length(order) do
        for i:=1 to length(order)-l+1 do
                begin
                ans[i][l]:=ans[i][1]+ans[i+1][l-1];
                for k:=2 to l-1 do
                        begin
                        temp:=ans[i][k]+ans[i+k][l-k];
                        if length(temp)<length(ans[i][l]) then
                                ans[i][l]:=temp;
                        end;
                if (((order[i]='[') and (order[i+l-1]=']'))
                   or ((order[i]='(') and (order[i+l-1]=')')))
                   and (length(ans[i+1][l-2])+2<length(ans[i][l])) then
                        ans[i][l]:=order[i]+ans[i+1][l-2]+order[i+l-1];
                end;
writeln(ans[1][length(order)]);
end;

BEGIN
//assign(input,'p.in');
//reset(input);
{for p:=0 to 3 do
        begin
        assign(f,'bracket.1'+chr(p+48));
        reset(f);
        readln(f,order);
        close(f);
        main;
        temp:=ans[1][length(order)];
        assign(f,'bracket.1'+chr(p+48)+'a');
        reset(f);
        readln(f,order);
        close(f);
        if length(temp)=length(order) then writeln('yes') else writeln('no');
        end;
}
readln(part);
for p:=1 to part do
        begin
        readln;
        readln(order);
        Main;
        if p<part then writeln;
        end;
END.

⌨️ 快捷键说明

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