Problem Statement
You are given a
Jiro's move will consist of adding a single black token to the board. The token must be placed onto an empty cell. Once Jiro places the token, some white tokens will be removed from the board according to the rules described in the next paragraphs.
The white tokens on the board can be divided into connected components using the following rules: If two white tokens lie in cells that share an edge, they belong to the same component. Being in the same component is transitive: if X lies in the same component as Y and Y lies in the same component as Z, then X lies in the same component as Z.
Each component of white tokens is processed separately. For each component of white tokens we check whether it is adjacent to an empty cell. (That is, whether there are two cells that share an edge such that one of them is empty and the other contains a white token from the component we are processing.) If there is such an empty cell, the component is safe and its tokens remain on the board. If there is no such empty cell, the component is killed and all its tokens are removed from the board.
Jiro's score is the total number of white tokens removed from the board after he makes his move. Return the maximal score he can get for the given board.
Definition
- Class:
- FoxAndGo
- Method:
- maxKill
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int maxKill(String[] board)
- (be sure your method is public)
Notes
- The position described by board does not have to be a valid Go position. In particular, there can already be components of white tokens that have no adjacent empty cell.
- Please ignore official Go rules. The rules described in the problem statement are slightly different. For example, in this problem the black tokens cannot be killed, and it is allowed to place the black token into any empty cell.
Constraints
- n will be between 2 and 19, inclusive.
- board will contain exactly n elements.
- Each element in board will contain exactly n characters.
- Each character in board will be 'o', 'x' or '.'.
- There will be at least one '.' in board.
Examples
{".....", "..x..", ".xox.", ".....", "....."}
Returns: 1
To kill the only white token, Jiro must place his black token into the cell (3,2). (Both indices are 0-based.)
{"ooooo", "xxxxo", "xxxx.", "xxxx.", "ooooo"}
Returns: 6
By placing the token to the cell (2,4) Jiro kills 6 white tokens. The other possible move only kills 5 tokens.
{".xoxo", "ooxox", "oooxx", "xoxox", "oxoox"}
Returns: 13
There is only one possible move. After Jiro makes it, all the white tokens are killed.
{".......", ".......", ".......", "xxxx...", "ooox...", "ooox...", "ooox..."}
Returns: 9
Regardless of where Jiro moves, the 9 white tokens in the lower left corner will be killed.
{".......", ".xxxxx.", ".xooox.", ".xo.ox.", ".xooox.", ".xxxxx.", "......."}
Returns: 8
{"o.xox.o", "..xox..", "xxxoxxx", "ooo.ooo", "xxxoxxx", "..xox..", "o.xox.o"}
Returns: 12
{".......", "..xx...", ".xooox.", ".oxxox.", ".oxxxo.", "...oo..", "......."}
Returns: 4
{".ox....", "xxox...", "..xoox.", "..xoox.", "...xx..", ".......", "......."}
Returns: 5
{"...................", "...................", "...o..........o....", "................x..", "...............x...", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "................o..", "..x................", "...............x...", "...................", "..................."}
Returns: 0
{"o.x.xxxxo.x...","......x...xoo.","o.x.xo.xxo.xx.","x......xx.xxxo",".xx.oxo.xx..x.","x.x.x...x..xxo",".x.o.xx..xxx..","...xx.xx.xox.o","x...xx..xx.x..","x..xx.x..xxo.x","o...xxxx..x.x.",".xxxxxxox.o.xx","..oxoxo.....xo","x.xx.oo..x.ox."}
Returns: 1
{"xx.xxxx","xoo..xo","o.x..o.","..x.x..",".o.x.xx","x....o.",".xxooox"}
Returns: 1
{"xox.","xxx.","xxxx","xxox"}
Returns: 2
{"xxxxxxxx.xox.","xoxoxxo.xoxx.",".xx.oxxx.xxx.","ox.xx.xoxx.xx","x.xx.xx.oxx.o","xxxxooxxxxxxx","xoxxoxxxxx.x.","xxoooxxxoxx.x","xoxxxxxoxxoxx","xxoxx.x.xxxxx","xxxxxxxxx.xx.","xxxx.x...xxxx","xxxx.oxxxxxxx"}
Returns: 14
{".xxx","xx.x","xoox","xxxo"}
Returns: 3
{"..",".."}
Returns: 0
{".....xx","..xxx..","xx.x.x.","..x..o.","xxx.xx.","..x.x..","......x"}
Returns: 0
{"x.oxxo.x","xoxxoxoo","xx...x.x","xx.xxxx.",".oxxx.xo","x..o.oxx","oox.oxox","ox.xxo.."}
Returns: 3
{"oo.ooo","oooooo",".oo.oo","oo.ooo",".oo.oo","ooooo."}
Returns: 0
{"..x.o..o.x..xxx..x","o..oxx.o.ox..x.o..","xox.o.x.x..x.x.ox.","o.xx..xxoxxxxxxxxx","xxxxx.x.xxxxxx....",".x.xxxooxoxxoxxxox","xxoxx..xxxxxo.xx.o","x....x.o..x.x..xxx","oxxox.x..xxox....o","oxox..xxxo...xx.xx",".x.xoxoox.o..x.oxo","xxxoxo.x.xx.oxxxo.",".oxxx.xx.xx..x.xxx",".x.oxxxx..x..x..xx",".xxx.xxxxxxoox..x.","oo.x.o.xxxxooooxx.","xox..ox..x.ox.xx.o","..xxx.x.xxxxxxxxox"}
Returns: 5
{".oo.xxxx.xx.oxxo.","xox.....xxx.ox.xx","...xxxxo.x.xx...o",".oox.x.oxox...o.x",".o.x.xooxoxxxxoxx",".xx.xxo.o..x.xxxx","..xxx..oxx.xxx.o.","o.xo.o.oox..xxxxx",".o.x..xoxo..xoxxx",".xxx.o.xxxxox.x.x","xx.x.xo.x..x.xx..","xx.xx.ox.x.oxxo..",".xoo...x.x..x.xoo","xxxx.xxxx..x..x.x","x.x.o.xoxxxx.xx.x","x.xx.xxo..xxxxxxx","xxx.xxxxo..oo.xoo"}
Returns: 4
{".oooo...ooo.o.oo","o.ooo.o...oo..o.","oooooo.o.o.oo.oo","oooo.oooo.ooo...","o....oo.oo..oo..","xo.o.x..oo....x.","ooooo.oo..oox.oo","oox.ooooo.o.ooo.",".oo.ox.o.o.o.o..",".x.o.o.oo....oo.","ooooo.o...oo.oox","xo..oxooo.....oo","o.ooxoo.ooooo...",".ox.oxo.oooo..oo","o.oo...o..o.oooo",".o..ooo..oo..o.o"}
Returns: 0
{"x...x..xo.","x...x.xxoo","xxo.xx....","x..o..x..o",".x........",".x..x.ox..",".x...x.xxo","....x.x..x",".x..x..xx.","x.o.x.x.x."}
Returns: 1
{"oo",".."}
Returns: 0
{"xxxxxxxxxxxx","xxxxxxxx.xxx","xxxxxxxxxxxx","xxxxxxxxxxxx","xxxxxxxxxxxx","xxxoxxxxxxxx","xxx.ooxx.xxx","xxxxxxxxxxxx","xxxxxxxxxxxx","xxxxxxxxxx.x","xxxx.xxxxxxx","xxxxxx.xxxxx"}
Returns: 3
{"oooooooxox","oooooooxoo","ooooo.ox.o","oooooooooo",".oooooooxo","oooooooooo","oxoooxoooo","oox.xooooo","ooooooooxo","ooooooxoxo"}
Returns: 0
{"x.oo..xxoo.ox","...o..o......","..oxoo.ox....",".oo.o....o...",".x.o..o.o..ox","..o..x.x.x.x.","x..x.oxo.xo..","o.x.xx......x","o.x.o.o.xo...","o.oo...x...ox","....o.....xx.",".............",".x...x.x..oxo"}
Returns: 1
{"xxooxxx.x","xxooo..oo",".ooxxxoxx","oxxxx.oo.","oxxxx.xxx","oxxxxxxxx","xxx.xxo.o","xxxxxxxxx","x.xxxxxxx"}
Returns: 3
{"ooo.xx","xx.xoo","xxoooo","xxooxx","oxoooo","ooxoxo"}
Returns: 17
{"....xx.oo.....",".....ooooo.o.o","o...o.o.....oo","........x..o..","o.oo.oo.o..o..","o.o...o.o.x.oo",".o.........o.o","oo..o.o..ox...",".oooxoo..xoo..","xoo.xo.o.ooo..","o.oo...xx.ooo.","o...oo.o.o.o..","xoo..o.o..x.o.","o..oooox.xo..o"}
Returns: 1
{"xx.....o","oxxxxx.x","xxxx..xx","ooxxxxxo",".xx.xx.x","xxxxxxoo","..xxxxxo","..xox.xx"}
Returns: 6
{"xxx","xxx","xx."}
Returns: 0
{".o..o.","o...o.","o.o...",".oo...","..o...","...oo."}
Returns: 0
{".oo.o.oo.ooo.o","o.oooooo..xoo.","xo.ooo.oo.....",".o.ooo.oo.oo.o","ooooo.ooooooo.","o..ooo...ooooo","ooo.oo.o.o..x.","oooooooo.ooooo",".oooo..ooo.ooo","ooo.oo.oooo.o.",".o...o...ooooo","oooooo.x..o.oo","..oo.o..oo..oo","o..o.o..oxooo."}
Returns: 0
{".oox","xxx.","x.oo","xox."}
Returns: 2
{"xxx.xxxxxxxxoxo","xx.oxxxxxxo.oxx","xx.xx.x.ooxx.xx","xxxxxo.xxxxoxox",".x.xxxx.ooxoxxx",".xo.ooooooxx.xo","x.xoxxxxox.xxxx","xox.xxxxoxoo.xo","xoxoxxox.x.xx.x","xxxoxxxxxxxxx.x","x.x.xoxxxxxx.xo","xxx.xxxoxoxo.x.","xxooox.xxxxxxxo","x..xooxxxx.xx.x","ox..ooxxxxxx.xo"}
Returns: 14
{"ooooooxoxooxoooxo","oxooooooxooox.ooo","ooooooooooo.ooxoo","xoooooooooooooooo","oooooooxooooooooo","ooooooxoooooooo.o","ooooooooxxoxooooo","ooxooooxoooo.xoxo","xoooooooooooooo.o","o.oxooooooxoooooo","xo.xooooxoooooooo","oooooooooooo.oxoo","oooo.ooooox.ooooo",".ooooox.ooxoooooo","xooooooooxooxoooo",".ooooooooooxooooo","oooooxxoooooooooo"}
Returns: 1
{"xooo.oxooooooo.o","xxo..xoxxooxoooo","xooooxoooooxxooo",".ooooooxoooooxoo","oo.oooooooo.oo.o","oox.ooooo.ooxo.o","ooooxox.ooo.oxxo","ooo.oo..oxxooxoo","oooooo.ooo.ooooo","o.ooooo.ooo.x..x","ooo.oooxooxoo.o.","xoxxoxoooxoxooxo","ox.xo.ooooooooxo","ooo.xxo.xox.oooo","oooxoooooxoo.x.o","oooooxo.xoo.xooo"}
Returns: 1
{"oxxxxxxxxxxx.xxxxxx",".xxxoxxxxoxxxxxxxxx","xxxxxxxxxxxxxxxxoxx","xxxxxxxxoxoxxoxxxox","xox.xxxxxxxxxxxxxxo","xxxxxoxxxxxxxxx.xxx","oxxxxxx.xx.oxoo.xxx","oxx.xxxxxxxx.xxx.xx","x.xxx.oxxxxxox.o.xo","xx.oxxxxxxxxxxxxxxx","xxx.xoxo.xxxxxxxxox","xxo.xxxoxxoxoxxxxxx","xoxxooxxoxxoxxooxxx","xxx.xxxoxxoxxxxoxxo","xxoxxxxx.xoxxxoxxxx","xxxx.xxxxxxoxxxxxox","xxxoxxxxxxxxxxxo.ox",".oxxxxxxxooxo.xxxxx","oxxxxxoxxxxxxxx.xxx"}
Returns: 39
{"x.xx.xxx.xxxxo.","x.x...x.x.x.x.x","xxx...x.xx....x","xxxxxxxxxx.x.xx","xxxx.xx.ox.xx.x","..x..x...x..x..","xxx.xx.x.x.x.x.",".xxxxxoxx.xxxxx","x.x.xxxx.x.x...","..xxo.xxx.xxxxx","..xx...xx.xxxxx","..xx.x.x..x.x.x","xxxxxx.xxx.xx..","..xxxxxx...xx.x","xxxxxx.xxxx..xx"}
Returns: 1
{"..o..x.x.x....x","x.oo...x..oox.x","oxo..o...xxxxo.","x......o.x.oo..","....oxo..o...o.","..oxx..ooo...xo","xxxoooo.o.xoo.x",".oo.o.o..ox...x","xx.o..x.....ooo","oo.xoo...o.xxxx","o.oo.xx..oo.xox","..ooo......xx..","x......x..oo.x.","ox....x...x..o.",".....xx.ooooo.o"}
Returns: 2
{"o..ooo.xoooo..","oo..ooo..oo...","..o..ooo...ooo","oooo..o.xo.o..","o....o.o.ox.o.","o..xo....o..o.","..oooo..o..o.o","x.ooxo.oo..oo.",".o...xo.ooo.o.","oo.o.o..oox.xo","..oo...o...ooo","..oo.ooooo.ooo",".o......oooo..",".o.o..oo.oo..o"}
Returns: 0
{"...xx.","xxx.xx",".x...x",".xx...","xx.xx.",".xxxxx"}
Returns: 0
{"o.xx.......x",".xo.xx.xoo.x","..x.o.o.x.xo",".xxxx.xo..xx","...o.xox..xo","o.x...x..xxo","o..oxx......",".o.x...o....",".x.x.x......","xox...xx...x","o..x.xx.o.xx","ox.x..x....."}
Returns: 5
{".o.o..o...","o...o..o..","....o.....","o.........","..o..oox..","..........","..........","x..oo.....","ox........","......oo.."}
Returns: 1
{".oo.oo.xo.","o....x.oox",".oooo.o.o.","o.ooo.oooo",".o.o.ooooo","oo.ooooo.o","ooo....oo.","oo.oooo..o","o..oo..o.o","oo.oo.o.oo"}
Returns: 0
{"oxxx.xooxx.x","xooxxoxoooox",".xxxox.xo.xo","xoo.o.xx.x.x","xxo.oo.oo.ox","ooo.xxxooxoo","o.oox.ooooo.",".xx.o..xooox","ox.xoox.ooxo","ooxx.xoxooox","xxxoxoxx.oo.","o.oooooo..xo"}
Returns: 10
{"ooo..oo.xooo","...oo..o.oo.",".o..oooo..xx","..o..o.o...o","ox..o..oo..x",".ooo.ooo.o.o","oxoo...xo...","oxx...ox....","....o...o.oo","ooo.oooo..o.","o...o.o.xo..","o.ooo...x.oo"}
Returns: 1
{"..x","oox","..x"}
Returns: 0
{".x.xoxx.x.x","ox.....ox.x","oxo..x..o..","xxx..x..xo.","xooo....x.x","oo.oxx...o.","..xoo.o..oo","oo..xo.o.oo","oxx.xo..x.x","oooxooxoo.o",".x..oxx.x.o"}
Returns: 2
{".x.x.xx.","x..xoo..","xoo.x..x","oxxxxoxx","..oooxxx","...xxoox","xxx.xox.","oxoxxxox"}
Returns: 7
{"oo..xoxox.x..","..xox....xo..",".oxx.x.o..xxo",".xx......xx..",".xxo..xxoo...","...o..xx.o.x.","xo.xxoo.xxox.","....xx..xo..x",".xxx.oo...ox.","xo...o.x..oxx",".x..x.xxo.x.x",".x.xxxox.o...","o..oox.xx.oxx"}
Returns: 2
{"o..o....oxoo.","oo.o...xooo.o","o....ox.oo.oo","o.ooo.o..ox.o",".....oo.x.x.o",".oo.o...oo...","ooo.o.o..oo.o",".o.ooo...oooo","..xoo...xo..x","..oo.......o.","..xx.xoooo.oo","..oo.o....oo.","ooxo....o..o."}
Returns: 0
{"xxxx.xo",".xxxxxx","oxxxoxx","xxxxx.x","xxx..xx","x.xxxox","xxx.xxo"}
Returns: 5
{"xoox.xx.oxxoooox","xoooox.xxooxox..","ooxxoxxxooox.x.o","xooxoxxox.ooxxox","oo.o.x.xooxooooo","x...oooo.xoxxxoo","o..oox.ox.xoooxx","xxox.oo..xoxooox","oxoo...xxooox.oo","..xoxxo.xooooxx.","o.oxoox.ooooxooo","o..oo.xo..x.xx.o","oxxxo..o.xxxooxx",".ox.xxo.xxo.o.xo","xxo..x.xoxoox.o.",".xoxx..xx.oooooo"}
Returns: 5
{"....xoxx","o.ox.o.o","xxx..o..","....xxxo","..xx....","...xx.oo","x..x..xx","x.o.xx.o"}
Returns: 1
{"o..x.","x....",".x.x.","xx...","..x.."}
Returns: 1
{"xxxxx","oxxxx","o.x.o","xxooo","xxxxx"}
Returns: 4
{"..x...o.oo","..........","....x.o..o","...o..oox.","oooo......",".o..o..xo.",".o..o.o..o",".x...o..o.","......o...",".o.oo.o..."}
Returns: 0
{"xx.x",".oox","xxxx","xxox"}
Returns: 1
{"oooxo.oxo.xooooxo.","oxxooooxxxooxooo.o","xo.x.xxo.ooxo.oxox","xoxoo.xxxooxooxxoo","xxoo.xoxooooxxooox","oxxoo.oooo.x.oooox","xo.oo.ox.xx..oxxxx","xxxoooooo.ooxx.o.o","xxoxooo.oxoox.oox.","oo.xx.ooo..xoox.x.","oxxxo.xooxxxx.o.xo","oxooooxooox.oxx..x","xoooooooox.ooxxoo.","xxxxo.oo.xoox.ox.o","x..oooxooooooooooo","ooxoxoooooooo..oxo","x....xoxoxxooxoxox","ooooxoxx.ooooxoo.o"}
Returns: 11
{"xo",".x"}
Returns: 1
{"..",".."}
Returns: 0
{".oxxoxooox.xxx","xxoxxx..xoxxx.",".xxx.oooxxooxx","oxxxx.xox..xxo","x.oxox.ooxoxxo",".xo.xox.xoxox.","ox.xoxoooxxxxx","o.xx.oxoxoxoxx","xxxx.x.xx.xxxx","x.x.xx.ox.xxxx","xx.xoooxoxxoxx","xxo.xxxox.x.xo","xx.o.oo.x.xxx.","x.oxx.xxxx.xox"}
Returns: 14
{"oox.x.oo.",".x....xoo","...oxxox.","x..xx.o.x",".oox.xxox","x.xxxxx..","o.o.xoo..","oo.xxo...","oooxox.x."}
Returns: 3
{"xoxo","x.ox","xoxo","xxox"}
Returns: 6
{"ox","o."}
Returns: 2
{"...x.xx.xx.x.xx","x.oxxx....x.x.x","..x..x....xx...","x...x..x.xx...x","xxxx.xo.xxxxx.x","...xxxx.xxx...o","xo...xx.xxx...x","x.xx.xxxxxo...x","x.x..oo.......o","..x.x.xx...xx.x","x.xxx.xo..xxx..",".xxxxxxx.xx..xx","x.x.x..xxx..xx.","x..x..xx.xxx...","xxx.x..oxx.x..x"}
Returns: 1
{"xo.xo.x.o..xox..","xx..xoxoxxoox.xo","oxoo..ox.oxx..ox","oo.xoo.xx..oxxoo","oxo....o.o.xo...",".xxxxx.o..ox....","xox...o..xo....o","o.oooo.oox.ooxxo",".ox.x.....oxooo.","xoxx..ooo.oox..x","o.o.ooooo....o.o","x.oooxo.oo...ox.","o...ox...xx..oxx","xo...o...x.xoo.o","xoxoo.o.ox..ooxo","..x.oo..x.oo.xo."}
Returns: 3
{"xxxox","xxxxx","xooxx","..oxx","xo..x"}
Returns: 1
{"oxx..x.ox..o.ooo..","oo.ox.o.ox.....ox.","oo.oooox..xx..xxx.","x..oo.ooo.x.oxo..x","ox.o.xoo.xox.oox..",".o.ooxoxxx.....x..","oxo.o.xoo.o..o.oxx","ooox.o.ox......o.o",".xo.xxxxxo.oo.o.xo","o.xo.xo..o.oox.oox","..oo.o....ooxxx.xo","..o.x.oxx.xoo.ooo.","oxx..xooxxxx.o..oo","...o..oxoxooooooxo","oxo.xooxoooxo..xo.","ooo.oxooox.o.oooo.","oo.oxoo.o..xox....","o..o...o.x.o.ox.x."}
Returns: 2
{"x.xoxxxo","x.o.x..x",".o.ox..o","x.x...xx","oxxx.ooo",".xxoxx.x","xx.ooxxx","..xxxxx."}
Returns: 4
{"...x..xx.x.x..x",".x.x.x......ox.",".x......xx.x..x",".xxx.......x...",".......x.x.x..x","xxox..o...x...x","..x...x.x.....x",".x.....x..x...x","..x...x..x...xx","x....xx.x...xx.","..xx.xxxx.x...x","x.ox..x...xx.xx",".x...x.........","xxx..xxxx...x.x",".xx.x...x...x.x"}
Returns: 1
{"oooo.ooxo.oxoxo","ooooo.ooooxoooo","ooooxo.xooooxoo","oo.xoooooooooox","ooxxooo.oo.oooo","oooxooooooooooo","xo.oxoxxo.ooooo","oooooooooox.o.x","oooooooxooooooo","xooooxoooxoooxo","ooooooooo.oo.o.","oo.ooooo.ooooxo","oooooooxoooooox","xooxooxoooooooo","ooooxoxx.oooo.x"}
Returns: 1
{"...x.x......xx","..x...x...xx.x","ox.x.xxxo.o.x.",".....xo..x....","x.......xx.xx.","....x........x",".............x","..o.x...o.x...",".o....x.x..x.x","o....o..ox.x..",".....oxo......","......o..o....","...x.x.o..o.x.","x....x.xx....."}
Returns: 0
{"ooxox.ooo.xooooxxo","ooxoxxxoxxoxxoxoox","oooooxxooxo.oxoooo","oooxoxoooxooooxooo","oox.o.ox.oxxoxoooo","o.ooxxxoooxxoooo.o","oo.oooxxooxoooo.xo","oxooo.x.oooxooo.ox","xxoxxxoxxxxoxxxoox","o.xx.xoooo.oooxxox","xxooooooxx.ooooox.","oxoooo.oxxo.o..ooo","oxxooooxooo.xooxoo","oooxooooo.ooxo.xox","xooxxxxooo..o.xooo","ooooxooo.x.ooxxxox","oooooooxoxoooo.oox","x.oooooxxooo..ooxo"}
Returns: 11
{"xxxooxxxxxxxx","xxx.xxxx..oxx","oxx.oooxxooxo","xx.xx.oxox.oo","xoxoxxooox.oo","xxxxxooxxoo.o","oxoxxooxxxx.x","xoo.o.xoxxxxx","xxxxxxxxxo.o.","..oxxxxxxooxx","oxxxxxo.oox.x","xoxxoxx.oxoox","xxx.xxxoxxxxx"}
Returns: 10
{".xo","xxx",".oo"}
Returns: 3
{"x.....",".ooo.o",".o....","o....o","..x...",".ox..."}
Returns: 0
{"..o............","x.....x...x.x..","..x.....xoxx..x","x.o..........xo","......ox....o.x","xx.x...........","x..oo.....xox..","...............","x....x.x.....x.","...ox..x.x.....","...o..oo.......","..x...ox..x....","...x.xxx...oo..",".o....o.o......",".xo.x....xxx..."}
Returns: 1
{".....", "..x..", ".xox.", ".....", "....." }
Returns: 1
{".......", ".xxxxx.", ".xooox.", ".xo.ox.", ".xooox.", ".xxxxx.", "......." }
Returns: 8
{"ooooo", "xxxxo", "xxxx.", "xxxx.", "ooooo" }
Returns: 6
{"xoo.ooox", "xooxxxxx", "xxxxooo.", "xxxxxxxx", "........", "........", "........", "........" }
Returns: 7
{"...................", "...................", "...o..........o....", "................x..", "...............x...", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "...................", "................o..", "..x................", "...............x...", "...................", "..................." }
Returns: 0
{"xxxxxx", "xxxxxx", "ooooo.", "ooooox", "ooooo.", "xxxxxx" }
Returns: 0
{"o.xox.o", "..xox..", "xxxoxxx", "ooo..oo", "xxxoxxx", "..xox..", "o.xox.o" }
Returns: 9
{".xoxo", "ooxox", "oooxx", "xoxox", "oxoox" }
Returns: 13
{"xxxxxx", "xo.oox", "xxxxxx", "xoo.ox", "xxxxox", "xxxxox" }
Returns: 5
{"o.xox.o", "..xox..", "xxxoxxx", "ooo.ooo", "xxxoxxx", "..xox..", "o.xox.o" }
Returns: 12
{"........", "..x...x.", "..ox.xox", ".xox..x.", "..x.....", "........", "........", "........" }
Returns: 3