beads.pas
来自「Magio牛的usaco源代码」· PAS 代码 · 共 57 行
PAS
57 行
{
ID:maigoak1
PROG:beads
}
program beads;
const
maxlen=350;
var
fin,fout:text;
necklace:array[1..maxlen*2]of char;
len,i,j,get,max,posb,posr:integer;
function fit(a,b:char):boolean;
begin
if (a='r') and (b='b') or (a='b') and (b='r') then fit:=false else fit:=true;
end;
begin
assign(fin,'beads.in');
reset(fin);
readln(fin,len);
for i:=1 to len do begin
read(fin,necklace[i]);
necklace[len+i]:=necklace[i];
end;
close(fin);
max:=0;
for i:=1 to len do begin
posb:=0;posr:=0;
for j:=1 to len do begin
if necklace[i+j-1]='b' then if j>posb then posb:=j;
if necklace[i+j-1]='r' then if j>posr then posr:=j;
if (posb>0) and (posr>0) then break;
end;
if posb=0 then posb:=len+1;
if posr=0 then posr:=len+1;
if posb>posr then get:=posb-1 else get:=posr-1;
posb:=0;posr:=0;
for j:=1 to len do begin
if necklace[i+len-j]='b' then if j>posb then posb:=j;
if necklace[i+len-j]='r' then if j>posr then posr:=j;
if (posb>0) and (posr>0) then break;
end;
if posb=0 then posb:=len+1;
if posr=0 then posr:=len+1;
if posb>posr then get:=get+posb-1 else get:=get+posr-1;
if get>len then get:=len;
if get>max then max:=get;
end;
assign(fout,'beads.out');
rewrite(fout);
writeln(fout,max);
close(fout);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?