theme.pas

来自「Magio牛的usaco源代码」· PAS 代码 · 共 51 行

PAS
51
字号
{
ID:maigoak1
PROG:theme
}

program theme;
const
  maxn=5000;
var
  fin,fout:text;
  dif:array[1..maxn-1]of shortint;
  len:array[1..maxn-2,1..maxn-1]of integer;
    {Length of theme ending at two positions minus one}
  n,i,j,ans:integer;
  n1,n2:byte;
begin
  assign(fin,'theme.in');
  reset(fin);
  readln(fin,n);
  dec(n);
  read(fin,n2);
  for i:=1 to n do begin
    n1:=n2;
    read(fin,n2);
    dif[i]:=n2-n1;
  end;
  close(fin);

  ans:=3;
  for i:=2 to n do
    len[1,i]:=ord(dif[1]=dif[i]);

  for i:=2 to n do
    for j:=i+1 to n do begin
      if dif[i]=dif[j] then begin
        len[i,j]:=len[i-1,j-1]+1;
        if len[i,j]>=j-i-1 then len[i,j]:=j-i-1;
      end
      else
        len[i,j]:=0;
      if len[i,j]>ans then ans:=len[i,j];
    end;

  if ans=3 then ans:=0 else inc(ans);

  assign(fout,'theme.out');
  rewrite(fout);
  writeln(fout,ans);
  close(fout);
end.

⌨️ 快捷键说明

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