讨论 / 帮我看看吧,只过两个测试点
675694756 2011-08-21 05:58:00
点我顶贴 收藏 删除
program beads;

var

m,max,i,j,k,n:integer;

a:array[0..1000] of char;

s:string;

function search(c:integer):integer;

var

x,p,q:integer;

begin

x:=1; p:=1;

for i:=c+1 to n do

begin

if p=2 then search:=x;

if a[c]=a[i] then x:=x+1;

if a[c]<>a[i] then p:=p+1;

end;

end;

begin

readln(n);

readln(s);

k:=0;

for j:=2 to n do

if s[1]=s[j] then k:=k+1;

if k=n-1 then begin

writeln(n);

exit;

end;

for i:=n downto 2 do

begin

if s[1]<>s[i] then begin

k:=i+1;

break;

end;

end;

for i:=1 to n-k+1 do

for j:=k to n do

a[i]:=s[j];

for i:=n-k+2 to k-1 do

for j:=1 to k-1 do

a[i]:=s[j];

k:=2;

for i:=n-1 downto 2 do

if a[n]=a[i] then k:=k+1;

for i:=1 to n do

if a[1]=a[i] then k:=k+1;

max:=k;

for i:=1 to n do

begin

m:=search(i); if m>max then max:=m;

end;

writeln(max);

end.

查看更多回复
提交回复