#codefestival2016qualCd. [codefestival_2016_qualC_d]Friction
[codefestival_2016_qualC_d]Friction
Problem Statement
Mr. Takahashi has in his room an art object with rows and columns, made up of blocks. Each block has a color represented by a lowercase English letter (a
-z
). The color of the block at the -th row and -th column is .
Mr. Takahashi would like to dismantle the object, finding it a bit kitschy for his tastes. The dismantling is processed by repeating the following operation:
- Choose one of the columns and push down that column one row. The block at the bottom of that column disappears.
Each time the operation is performed, a cost is incurred. Since blocks of the same color have a property to draw each other together, the cost of the operation is the number of the pairs of blocks such that:
- The block is in the selected column.
- The two blocks and are horizontally adjacent (before pushing down the column).
- The two blocks and have the same color.
Mr. Takahashi dismantles the object by repeating the operation times to get rid of all the blocks. Compute the minimum total cost to dismantle the object.
Constraints
- All characters are lowercase English letters (
a
-z
).
Partial Score
- In test cases worth points, .
Input
The input is given from Standard Input in the following format:
.. .. ..
Output
Print the minimum total cost to dismantle the object.
Sample Input 1
2 3
rrr
brg
Sample Output 1
2
For example, the total cost of can be achieved by performing the operation as follows and this is the minimum value.
Sample Input 2
6 3
xya
xya
ayz
ayz
xaz
xaz
Sample Output 2
0
The total cost of can be achieved by first pushing down all blocks of the middle column, then all of the left column, and all of the right column.
Sample Input 3
4 2
ay
xa
xy
ay
Sample Output 3
0
The total cost of can be achieved by the following operations:
- pushing down the right column one row;
- pushing down the left column one row;
- pushing down all of the right column;
- and pushing down all of the left column.
Sample Input 4
5 5
aaaaa
abbba
ababa
abbba
aaaaa
Sample Output 4
24
Sample Input 5
7 10
xxxxxxxxxx
ccccxxffff
cxxcxxfxxx
cxxxxxffff
cxxcxxfxxx
ccccxxfxxx
xxxxxxxxxx
Sample Output 5
130