T2:A了,一道水题,就是翻转棋,只要往每一个点八个方向找就ok。大概
uses
math;
var
i,j,n,s,t,ans,tans:longint;
a:array[0..10,0..10]of char;
function get(x,y:longint):longint;
var
i,j:longint;
begin
get:=0;
if a[x,y]<>'.' then
exit(0);
if a[x+1,y]='W' then
begin
i:=x+1;
while (i<8)and(a[i,y]<>'.') do
begin
inc(i);
if a[i,y]='B' then
begin
inc(get,i-x-1);
break;
end;
end;
end;
if a[x-1,y]='W' then
begin
i:=x-1;
while (i>1)and(a[i,y]<>'.') do
begin
dec(i);
if a[i,y]='B' then
begin
inc(get,x-i-1);
break;
end;
end;
end;
if a[x,y+1]='W' then
begin
i:=y+1;
while (i<8)and(a[x,i]<>'.') do
begin
inc(i);
if a[x,i]='B' then
begin
inc(get,i-y-1);
break;
end;
end;
end;
if a[x,y-1]='W' then
begin
i:=y-1;
while (i>1)and(a[x,i]<>'.') do
begin
dec(i);
if a[x,i]='B' then
begin
inc(get,y-i-1);
break;
end;
end;
end;
if a[x+1,y+1]='W' then
begin
i:=x+1;
j:=y+1;
while (i<8)and(j<8)and(a[i,j]<>'.') do
begin
inc(i);
inc(j);
if a[i,j]='B' then
begin
inc(get,j-y-1);
break;
end;
end;
end;
if a[x+1,y-1]='W' then
begin
i:=x+1;
j:=y-1;
while (i<8)and(j>1)and(a[i,j]<>'.') do
begin
inc(i);
dec(j);
if a[i,j]='B' then
begin
inc(get,y-j-1);
break;
end;
end;
end;
if a[x-1,y+1]='W' then
begin
i:=x-1;
j:=y+1;
while (i>1)and(j<8)and(a[i,j]<>'.') do
begin
dec(i);
inc(j);
if a[i,j]='B' then
begin
inc(get,j-y-1);
break;
end;
end;
end;
if a[x-1,y-1]='W' then
begin
i:=x-1;
j:=y-1;
while (i>1)and(j>1)and(a[i,j]<>'.') do
begin
dec(i);
dec(j);
if a[i,j]='B' then
begin
inc(get,y-j-1);
break;
end;
end;
end;
exit(get);
end;
begin
//assign(input,'b.in');reset(input);
for i:=1 to 8 do
begin
for j:=1 to 8 do
begin
read(a[i,j]);
end;
readln;
end;
for i:=1 to 8 do
begin
for j:=1 to 8 do
begin
ans:=max(ans,get(i,j));
end;
end;
writeln(ans);
end.