⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check.pas

📁 背包问题专项训练 动态规划算法 有题目的C++解法
💻 PAS
字号:
const maxlen=100;
var i:longint;
    yourans,answer:string;
    email:array [1..3] of string;

procedure error;
begin
     writeln;
     writeln('Error!');
     writeln;
     halt
end;

function min(x,y:longint):longint;
begin
     if x<y then min:=x else min:=y
end;

function verify(sub,source:string):boolean;
var i,j,k,m:longint;
    state:array [0..maxlen,-4..maxlen] of boolean;
begin
     fillchar(state,sizeof(state),false);
     for j:=0 to 3 do state[0,j]:=true;
     for i:=1 to length(sub) do
         for j:=i to min(length(source),4*i) do
             for m:=4 downto 1 do
                 if state[i-1,j-m] then
                    for k:=0 to m-1 do
                        if sub[i]=source[j-k]
                           then state[i,j]:=true;
     if state[length(sub),length(source)]
        then verify:=true
        else verify:=false
end;

begin
     assign(input,'fatboy.out');
     reset(input);
     readln(yourans);
     close(input);
     assign(input,'fatboy.out');
     reset(input);
     readln(answer);
     close(input);
     if length(yourans)<>length(answer) then error;
     assign(input,'fatboy.in');
     reset(input);
     for i:=1 to 3 do readln(email[i]);
     close(input);
     for i:=1 to 3 do
         if not(verify(yourans,email[i])) then error;
     writeln;
     writeln('Right!');
     writeln;
end.

⌨️ 快捷键说明

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