#Lutece1216. Build Towers
Build Towers
Migrated from Lutece 1216 Build Towers
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
Build towers on a game board is very interesting. Here we introduce one kind of game which is also building towers on the game board.
There are sticks on the game board. At the beginning of the game, we put plates of different colors on the sticks. There are different colors of plates. For each color, there are plates of size , , , , , , . One for each size. So totally there are plates put on the sticks.
If a plate of size is put right above the plate of size of the same color, they are glued together and not able to be split any more. In other words, they must be moved together in the rest of the game.
For each move, we can only move the top plate of each stick, maybe it's glued with several other plates, so they will be moved together. We can only move them onto a stick that the top plate is in the same color with the moving one and is larger than the moving plates. Or we can move them onto an empty stick.
The goal of this game is to make towers on any of the different sticks. Each of them are made of plates in the order of , , , , , , from top to bottom.
Now you need to find the minimal number of moved to achieve this.
Input
The first line of the input gives the number of test cases, (). test cases follow. Each test case starts with number (), the number of sticks on the game board. Each of the next lines starts with a number () represents the number of plates set on each stick. strings follow, each represents a plate set on that stick from bottom to top. The first character of the string represents the color and the rest represents the size or size range.
It's guaranteed that the number of colors equals and there are different plates for each color, to .
It's also guaranteed that there exists at least one solution for each test case.
Output
For each test case, output one line containing Case #x: y
, where is the test case number (starting from ) and is the minimal number of moves to make
complete towers.
Samples
1
8
6 A0 B0 E1 C0 C5 F3
6 F6 D0 B4 E0 D6 C2
5 F0 B3 E5 C1 B5
5 D5 B1 E6 B2 A5
5 F1 A4 F4 D3 B6
5 A6 D2 E4 D1 C4
4 A1 E2-3 D4 A2
5 A3 C6 F5 C3 F2
Case #1: 47
Resources
The 2015 China Collegiate Programming Contest