#4289. 瑞士制锦标赛(Swiss-System Tournament)

瑞士制锦标赛(Swiss-System Tournament)

题目描述

2N2N名选手,编号从1到2N2N,将参加一场石头剪刀布比赛。比赛共有MM轮。每轮有NN场一对一的比赛,每名选手参加其中一场。对于每个i=0,1,,Mi=0,1,\ldots,M,第ii轮结束时选手的排名按以下方式确定:

  • 在前ii轮中获胜次数多的选手排名更高。
  • 平局时,编号小的选手排名更高。

此外,对于每个i=1,,Mi=1,\ldots,M,第ii轮的比赛安排如下:

  • 对于每个k=1,2,,Nk=1,2,\ldots,N,第(i1)(i-1)轮结束时排名第(2k1)(2k-1)和第2k2k的选手进行一场比赛。

在每场比赛中,两名选手只出一次手,结果是一方胜一方负,或平局。小高能预见未来,知道选手ii在第jj轮的比赛中会出Ai,jA_{i,j},其中Ai,jA_{i,j}是G、C或P。这里,G代表石头,C代表剪刀,P代表布。

剪刀石头布的规则如下:

  • 如果一方出剪刀(C),另一方出布(P),则出剪刀的一方获胜。
  • 如果一方出布(P),另一方出石头(G),则出布的一方获胜。
  • 如果一方出石头(G),另一方出剪刀(C),则出石头的一方获胜。
  • 如果双方出同样的手势,则为平局。

请找出第MM轮结束时选手的排名。

输入格式

输入从标准输入中给出,格式如下:

NN MM

A1,1A_{1,1} A1,2...A1,MA_{1,2}...A_{1,M}

A2,1A_{2,1} A2,2...A2,MA_{2,2}...A_{2,M}

\vdots

A2N,1A_{2N,1} A2N,2...A2N,MA_{2N,2}...A_{2N,M}

输出格式

输出2N2N行。第ii行应包含第MM轮结束时排名第ii的选手的ID号。

样例

2 3
GCP
PPP
CCC
PPC
3
1
2
4
2 2
GC
PG
CG
PP
1
2
3
4

样例解释

【样例1说明】
第一轮,选手1和2比赛,选手3和4比赛。选手2赢了前者,选手3赢了后者。
第二轮,选手2和3比赛,选手1和4比赛。选手3赢了前者,选手1赢了后者。
第三轮,选手3和1比赛,选手2和4比赛。选手3赢了前者,选手4赢了后者。
因此,最后选手的排名顺序是:3,1,2,4,从高到低。
【样例2说明】
第一轮,选手1和2比赛,选手3和4比赛。选手2赢了前者,选手3赢了后者。
第二轮,选手2和3比赛,选手1和4比赛。前者平局,选手1赢了后者。
因此,最后选手的排名顺序是:1,2,3,4,从高到低。

数据范围

  • 1N501 \leq N \leq 50
  • 1M1001 \leq M \leq 100
  • Ai,jA_{i,j}是G、C或P。

来源

  • AtCoder ABC222C