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

📄 calfflac.pas

📁 Magio牛的usaco源代码
💻 PAS
字号:
{
ID:maigoak1
PROG:calfflac
}

program calfflac;
const
  maxn=20000;
var
  fin,fout:text;
  ch:array[1..maxn]of char;
  st:array[0..maxn]of string;
  n,i,len,start:integer;
  c:char;
function isletter(c:char):boolean;
  begin
    if (c>='A') and (c<='Z') or (c>='a') and (c<='z') then isletter:=true else isletter:=false;
  end;
function lcase(c:char):char;
  begin
    if (c>='A') and (c<='Z') then lcase:=chr(ord(c)+32) else lcase:=c;
  end;
procedure extend(s,t:longint);
  var
    l:longint;
  begin
    while (s>1) and (t<n) do
      if ch[s-1]=ch[t+1] then begin
        dec(s);
        inc(t);
      end
      else
        break;
    l:=t-s+1;
    if (l>len) or (l=len) and (s<start) then begin
      len:=l;
      start:=s;
    end;
  end;
begin
  n:=0;
  fillchar(st,sizeof(st),0);
  assign(fin,'calfflac.in');
  reset(fin);
  repeat
    read(fin,c);
    if isletter(c) then begin
      inc(n);
      ch[n]:=lcase(c);
    end;
    st[n]:=st[n]+c;
  until eof(fin);
  close(fin);

  len:=0;
  for i:=1 to n do
    extend(i,i);
  for i:=2 to n do
    if ch[i-1]=ch[i] then
      extend(i-1,i);

  assign(fout,'calfflac.out');
  rewrite(fout);
  writeln(fout,len);
  for i:=start to start+len-2 do
    write(fout,st[i]);
  writeln(fout,st[start+len-1][1]);
  close(fout);
end.

⌨️ 快捷键说明

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