E - 必殺!無限覇王斬! Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

実装難易度★★☆☆☆
謎解き難易度★☆☆☆☆

問題文

聖剣を入手した勇者はかっこいい必殺技を考えることにした。
勇者はかっこいい必殺技にはかっこいい名前が必要だと考え、
宿屋で夜更かしをしながら考えていた。
良いアイデアが思い浮かばずうとうとしていると、
夢の中で以下の様なイメージが浮かんできた。

イメージ

勇者が必殺技につけるべき名前はなんだろうか?

入力

本問題のみ入力にマルチバイト文字が含まれる。
マルチバイト文字は BOM (Byte Order Mark) なしの UTF-8 でエンコードされている。
入力は以下の形式で標準入力から与えられる。
NN
S1S_1
S2S_2
...
SNS_N
  L1L_1  
  A1A_1  
L2A2A3L3L_2A_2□A_3L_3
  A4A_4  
  L4L_4  
  • 11 行目には単語の数 N(4N40,000)N (4 ≦ N ≦ 40,000) が与えられる。
  • 22 行目からの NN 行のうち ii 行目には ii 番目の単語 SiS_i が与えられる。
    • SiS_i は Unicode の 0x0021 ~ 0x007E (空白を除いた printable な ASCII 文字) または 0x4E00 ~ 0x9FFF (漢字) の範囲の文字からなる。
    • SiS_i の長さ Si|S_i|Si=2|S_i| = 2 を満たす。
    • iji ≠ j のとき SiSjS_i ≠ S_j が保証される。
  • N+2N + 2 行目からの 55 行には勇者が夢の中で得たイメージの情報が与えられる。
    • イメージの情報は 5555 列からなる。
    • 11224455 行目の 11224455 文字目はそれぞれ全角スペース   (0x3000) である。
    • 11 行目の 33 文字目、 33 行目の 11 文字目および 55 文字目、 55 行目の 33 文字目は S1...SNS_1 ... S_N に含まれる文字のいずれかである。
    • 22 行目の 33 文字目および 44 行目の 33 文字目はそれぞれ (0x2191) または (0x2193) である。
    • 33 行目の 22 文字目および 33 行目の 44 文字目はそれぞれ (0x2190) または (0x2192) である。
    • 33 行目の 33 文字目は (0x25AA) である。

出力

イメージから連想される文字 11 文字を 11 行に出力せよ。
マルチバイト文字は BOM (Byte Order Mark) なしの UTF-8 でエンコードして出力せよ。
出力の末尾に改行を入れること。
答えは唯一に定まることが保証されている。

入力例 1

8
結構
連覇
覇王
草堂
覇道
覇者
慈愛
梵字
  連  
  ↓  
者←□→道
  ↓  
  王  

出力例 1


入力例 2

6
王権
王制
口偏
王侯
王族
浜焼
  制  
  ↑  
侯←□→権
  ↓  
  族  

出力例 2


入力例 3

4
辻斬
斬髪
斬首
斬新
  辻  
  ↓  
髪←□→新
  ↓  
  首  

出力例 3


入力例 4

4
AZ
BZ
ZC
ZD
  A  
  ↓  
B→□→D
  ↓  
  C  

出力例 4

Z

注意

UTF-8 では 1 文字は 1 ~ 4 バイトで符号化されている。
C/C++ には標準で UTF-8 を扱うためのライブラリが存在しないため注意すること。
本問題の入力には 1 バイトまたは 3 バイトでエンコーディングされた文字のみが含まれる。
詳しくは “UTF-8 C++” 等で検索されることをおすすめする。


2025-04-05 (Sat)
21:02:18 +00:00