B - AtCoderでじゃんけんを
Editorial
/


Time Limit: 2 sec / Memory Limit: 256 MB
問題文
AtCoderじゃんけんの大会が開かれています。AtCoderじゃんけんとは、2 人で行う以下のようなゲームです。
- まず、2 人がそれぞれ独立にグー、チョキ、パーのいずれかの手を出す。
- 2 人のAtCoderのレーティングが等しくなければ、レーティングが高いほうを勝者とする。
- 2 人のAtCoderのレーティングが等しく、2 人の出した手が異なるならば、通常のじゃんけんの勝者を勝者とする。
- 2 人のAtCoderのレーティングが等しく、2 人の出した手も等しいならば、引き分けとする。
大会には N 人の参加者がおり、大会期間中同じ参加者は同じ手を出し続け、また大会期間中にレーティングが変化することはありません。
大会では、すべての参加者が、ほかの N-1 人の参加者とちょうど 1 回ずつAtCoderじゃんけんをします。
それぞれの人のレーティングと出す手が与えられるので、すべての参加者について、大会終了時の対戦成績が何勝何敗何引き分けかを答えてください。
ただし、通常のじゃんけんにおいては、グーはチョキに、チョキはパーに、パーはグーに、それぞれ勝つものとします。
入力
入力は以下の形式で標準入力から与えられる。
N R_1 H_1 . . . R_N H_N
- 1 行目には、整数 N(1 ≦ N ≦ 100000) が与えられる。
- 続く N 行には、 i 番目の参加者の情報を表す整数 R_i, H_i(1 ≦ R_i ≦ 100000, 1 ≦ H_i ≦ 3) が空白を区切りとして与えられる。これは、i 番目の参加者のレーティングが R_i で、出す手が H_i=1 のときグー、H_i=2 のときチョキ、H_i=3 のときパーであることを表す。
出力
- 出力は N 行からなる。
- i 行目には、i 番目の参加者の勝ち数、負け数、引き分け数を表す整数 3 つを順に空白区切りで出力せよ。
出力の最後には改行を忘れないこと。
入力例1
6 2 1 2 2 3 2 5 3 2 2 3 3
出力例1
2 3 0 0 4 1 4 1 0 5 0 0 0 4 1 3 2 0
勝敗表は図のようになります。

図 1 : 勝敗表
入力例2
2 1999 3 2000 1
出力例2
0 1 0 1 0 0
慈悲はありません。
入力例3
8 3200 2 2800 3 2800 2 2700 1 2800 2 3200 1 2700 1 3200 3
出力例3
6 1 0 2 5 0 3 3 1 0 6 1 3 3 1 6 1 0 0 6 1 6 1 0