#P3042. [USACO12JAN] Cow Run G

[USACO12JAN] Cow Run G

题目描述

Farmer John and Bessie have devised a new exercise game for the cows. The cows are running on a circular track of length M (2 <= M <= 1,000,000,000) starting from the same position. The game proceeds in N (1 <= N <= 14) rounds using a deck of 8N cards each with a number X_i (0 <= X_i < M) written on it.

Each round FJ moves the top 8 cards into a separate pile and selects either the top 4 or bottom 4 cards for Bessie to play with. Bessie then chooses either the top 2 cards or bottom 2 cards of the 4 cards FJ selected. After this FJ calls out the number on the top card, X_top, and the cows run a distance of R * X_top, where R is the total distance the cows have run so far. Bessie then calls out the number on the bottom card, X_bottom, and the cows run a distance of X_bottom.

FJ is concerned that after the exercise the cows will be too tired to get back to the beginning of the track if they end up too far away. He believes if the cows end up more than a distance of K (0 <= K <= floor(M/2)) from their starting position they won't be able to get back home.

It is guaranteed that if FJ plays correctly, he will always be able to ensure the cows can come home, irrespective of the moves made by Bessie! For each round, your task is to determine which half of the cards FJ should choose such that no matter what Bessie does from that point on, FJ can always get the cows home. Bessie will then make the move provided in the input and you can then continue onto the next round. Note that even though Bessie's moves are provided to you in the input, you are to specify moves for FJ that would have worked no matter what Bessie chooses (so it is effectively as if FJ does not really know what Bessie will do during her moves).

输入格式

* Line 1: Three space-separated integers N, M, K

* Line 2: A string N characters. If the ith character is 'T' it means Bessie will select the top 2 cards in the ith round. Otherwise the ith character will be 'B' to indicate Bessie will select the bottom 2 cards in the ith round.

* Lines 3..2+N: Each line contains eight integers representing the 8 cards to be used that round from top to bottom.

输出格式

* Line 1: A string of N characters where the ith character is 'T' if FJ should choose the top 4 cards or 'B' if FJ should choose the bottom 4 cards in the ith round. If there are multiple ways to get the cows home, choose the lexicographically first (that is, the string that is alphabetically smallest).

题目大意

FJ 和贝茜为奶牛们设计了一个新的跑步游戏。跑道是环行的,长度为 (2M1,000,000,000)(2 \le M \le 1,000,000,000) 的环行,奶牛们在相同的起跑位置。这个游戏一共要进行 N (1N14)N\ (1 \le N \le 14) 轮,通过一副 8N8N 张的纸牌来控制每一轮的跑步距离,每张纸牌都有一个数字 Xi (0Xi<M)X_i\ (0 \le X_i<M)

每一轮,FJ 取出最上面的 88 张纸牌,然后再取出这 88 张的上面或者底下的 44 张。接着,贝茜从这 44 张牌中取出上面或者底下的 22 张,上面一张的数字为 XtopX_{\mathrm{top}},下面一张的数字是 XbottomX_{\mathrm{bottom}},则牛先跑 R×XtopR\times X_{\mathrm{top}} 的距离(RR 表示奶牛们已经跑过的距离),再跑 XbottomX_{\mathrm{bottom}} 的距离。

FJ 担心奶牛们太累而回不到起点,游戏结束时,若奶牛们离开起点距离超过 K (0KM/2)K\ (0 \le K \le \lfloor M/2\rfloor),则他们就回不了起点了。

问题保证,当 FJ 选择正确的取牌策略,不论贝西如何取牌,奶牛们都能够回到起点。对于每一轮,你的任务是决定取哪 44 张纸牌。在输入数据中,贝西的每次选择都是已知的,但 FJ 的每次取牌时,贝西接着的选择应该被假定为是未知的,即不论贝西怎么选,FJ 的选择都是能保证奶牛们能够回到起点。

2 2 0 
TT 
1 0 0 0 0 0 0 1 
0 1 1 1 0 0 1 0 

TB 

提示

The cows must end up exactly where they started to be able to come home. Note that FJ is not aware of what choices Bessie is going to make beforehand. If FJ did know, he could have chosen the bottom half each time.