time limits: 910 ms memory limits: 524288 kb
description
lagno(西班牙和奧賽羅)是一種二人智力遊戲。遊戲設有乙個黑方和乙個白方。遊戲桌面是正方形的,包含8行8列。
如果黑方玩家走出這樣一部棋:將一枚黑子放在任一空格上,而在這個空格的八個方向(上、下、左、右和4個對角線方向)的至少乙個方向上有一排白子被夾在這枚新下的黑子和其他黑子之間,任何方向,這排被新舊黑子包夾的所有的白子都要變成黑子(注意:1、被包夾有白子之間沒有空格才能變;2、不能連環變,即剛變黑色的棋子不能再變色周圍的棋子)。
為這個遊戲設計乙個程式,計算一步棋中黑方能轉變的白子數量的最大值。
input
輸入8行,每行8個元素;
「.」代表乙個空格;
「b」代表黑子
「w」代表白子
output
輸出一步中黑方能吃掉白子的最大數,
如果無法吃掉就輸出」0」.
sample input
........
........
........
...bw...
...wb...
........
........
........
sample output
1直接暴力:
const
fx:array[1..8,1..2]of integer=((0,1),(0,-1),(1,0),(-1,0),(-1,1),(-1,-1),(1,1),(1,-1));
var map,t:array[1..8,1..8]of char;
i,j,ans,x:longint;
function
find
(p,x,y:longint):longint;
begin
if x<1
then
exit(-maxlongint);
if x>8
then
exit(-maxlongint);
if y<1
then
exit(-maxlongint);
if y>8
then
exit(-maxlongint);
if map[x,y]='.'
then
exit(-maxlongint);
if map[x,y]='b'
then
exit(0);
find:=1+find(p,x+fx[p,1],y+fx[p,2]);
end;
function
get(x,y:longint):longint;
var o,z,ans:longint;
begin
ans:=0;
for o:=1to8
dobegin
z:=find(o,x+fx[o,1],y+fx[o,2]);
if z>0
then ans:=ans+z;
end;
exit(ans);
end;
begin
for i:=1to8
dobegin
for j:=1to8
doread(map[i,j]);
readln;
end;
for i:=1to8
dofor j:=1to8
doif map[i,j]='.'
then
begin
x:=get(i,j);
if x>ans then ans:=x;
end;
writeln(ans);
end.
出題人一定是乙個愛玩遊戲的 克羅埃西亞 INSTRUKCIJE
時間限制 1000 ms 空間限制 65536 kb 具體限制 description 小馬克今年成為小學生。不久後她將進行她的第一次考試,其中包括數學考試。她非常認真地複習,她認為自己已經準備好了。她的哥哥通過給她提出問題並解決的方式幫助她。他寫下許多問題,其中乙個問題是由一連串整齊的數字組成,比...
克羅埃西亞 NIKOLA
時間限制 1000 ms 空間限制 65536 kb 具體限制 description nikola現在已經成為乙個遊戲裡的重要人物。這個遊戲是由一行n個方格,n個方格用1到n的數字表示。nikola開始是在1號位置,然後能夠跳到其他的位置,nikola的第一跳必須跳到2號位置。隨後的每一跳必須滿足...
1148 克羅埃西亞 INSTRUKCIJE
題目描述 小馬克今年成為小學生。不久後她將進行她的第一次考試,其中包括數學考試。她非常認真地複習,她認為自己已經準備好了。她的哥哥通過給她提出問題並解決的方式幫助她。他寫下許多問題,其中乙個問題是由一連串整齊的數字組成,比如1個1,2個2,3個 3 等等。現在他給馬克兩個整數a和b 她的任務是找出由...