Rectangles
Ограничения: время – 1s/2s, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Even though he has found all the most amusing rides, Mirko’s enthusiasm still isn’t fading. He opened
his graph paper notebook and started colouring squares, and a new, even harder problem dawned on
him.
You are given a square table consisting of `N` rows by `N` columns. Each cell is either black or white.
A set of cells forming a rectangle, with horizontal and vertical edges following cell borders, shall be
called a black rectangle if all cells inside the rectangle are black and it consists of at least two cells.
The left image shows two rectangles which are not black rectangles. The rectangle labelled 1 is not a
black rectangle because it contains a white cell, and the rectangle labelled 2 is not a black rectangle
because it consists of only one cell. On the other hand, the right image shows three valid black
rectangles.
Calculate the number of possible selections of two black rectangles that have no common cells. As the
required number can be extremely large, you should output the remainder of dividing that number by
`10\ 007`.
The first line of input contains the integer `N` (`2 ≤ N ≤ 1000).
Each of the next `N` lines contains a single row of the table, consisting of `N` symbols. The symbol 'C'
represents a black cell, while 'B' represents a white cell.
The first and only line of output must contain the remainder of dividing the required number by `10007`.
Sample Input 2
3
CCB
CCB
CBB
Sample Input 3
5
BCCBB
BBCBB
BCCBB
BBBBB
CCBBB
Source: COCI 2010/2011, contest #2