A - エンド・オブ・ビギニング

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

ここはとある剣と魔法の世界。
数百年前、世界征服を企む魔王が伝説の勇者によって倒され、平和な時が流れていた。

数年前、ある古城の図書館から魔王が復活するという予言が記された古文書が見つかった。
しかし、魔王がどこに現れるかを記したページだけ暗号化されており、
誰も解読することができなかった。

暗号を解読し、魔王がどこに現れるのか解き明かせ。

MIDDLE OF CHAOS
BEGINNING OF LEGEND
END OF PEACE
BEGINNING OF FINALE
END OF BEGINNING
MIDDLE OF WAR
BEGINNING OF RUIN
BEGINNING OF DESTRUCTION

入力

入力は以下の形式で標準入力から与えられる。
N
P_1 Q_1 R_1
P_2 Q_2 R_2
...
P_N Q_N R_N
  • 1 行目には暗号化されたページの行数 N (1 ≦ N ≦ 10,000) が与えられる。
  • 2 行目からの N 行のうち i 行目には暗号化されたページの i 行目の内容 P_iQ_iR_i が与えられる。
    • P_iBEGINNING MIDDLE END のいずれかである。
    • Q_iOF である。
    • R_i は大文字英アルファベットからなる文字列である。
    • R_i の長さ |R_i|1 ≦ |R_i| ≦ 20 を満たす。
    • P_iMIDDLE の場合、 |R_i| が奇数であることが保証される。

出力

魔王がどこに現れるのか 1 行に出力せよ。
出力の末尾に改行を入れること。

入力例 1

8
MIDDLE OF CHAOS
BEGINNING OF LEGEND
END OF PEACE
BEGINNING OF FINALE
END OF BEGINNING
MIDDLE OF WAR
BEGINNING OF RUIN
BEGINNING OF DESTRUCTION

出力例 1

ALEFGARD

入力例 2

3
BEGINNING OF ATCODER
MIDDLE OF ATCODER
END OF ATCODER

出力例 2

AOR
B - ハヌマーンの試練

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

ここはある平和な村。16歳の誕生日を迎えたあなたは、
魔王を討伐する勇者になるためにハヌマーンの神殿で試練を受けることになった。

神殿の最奥であなたは精霊ハヌマーンから以下の問いかけをされた。
「ここに N 枚のコインがある。
我とそなたが交互に山からコインを取る。
ただし毎回1枚か2枚か3枚のコインを必ず取らねばならぬ。
最後のコインを取った方が勝ちじゃ。
我に勝てばそなたを勇者と認めよう。
先手と後手、どちらを選ぶ?」

双方が最適な戦略をとったとき、先手と後手のどちらを選べばハヌマーンに勝てるだろうか?

入力

入力は以下の形式で標準入力から与えられる。
N
  • 1 行目にはコインの数 N (1 ≦ N ≦ 252,035,059) が与えられる。

出力

先手の場合は SEN 、後手の場合は GO と出力せよ。
出力の末尾に改行を入れること。

入力例 1

4

出力例 1

GO

入力例 2

1234567

出力例 2

SEN

入力例 3

4096

出力例 3

GO
C - 酒場の冒険者たち

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

あなたは生まれ育った村を旅立ち、冒険者が集う街へとやってきた。
酒場で仲間になってくれそうな冒険者を探したところ、
複数の冒険者が名乗りを上げてくれた。
ところが、あなたは直感的に冒険者達の中に良い冒険者と悪い冒険者がいるのを感じた。
あなたはは良い冒険者は必ず本当のことを言い、
悪い冒険者は必ず嘘をつくということを知っている。
それぞれの冒険者が「****は良い/悪い冒険者だ」と言うので、
良い冒険者の名前を挙げよ。

入力

入力は以下の形式で標準入力から与えられる。
N
S_1
S_2
...
S_N
U_1 is a V_1 venturer.
U_2 is a V_2 venturer.
...
U_N is a V_N venturer.
  • 1 行目には酒場にいる冒険者の人数 N (1 ≦ N ≦ 20) が与えられる。
  • 2 行目からの N 行のうち i 行目には i 番目の冒険者の名前 S_i が与えられる。
    • S_i は大文字英アルファベットからなる。
    • S_i の長さ |S_i|1 ≦ |S_i| ≦ 20 を満たす。
    • i ≠ j のとき S_i ≠ S_j が保証される。
  • N + 2 行目からの N 行のうち i 行目には i 番目の冒険者の発言が与えられる。各冒険者の発言中の各変数は以下の制約を満たす。
    • U_i は冒険者の名前のうちのいずれかである。
    • V_igood または bad のいずれかである。

出力

良い冒険者の名前を 1 行にひとつずつ、辞書順でソートして出力せよ。
複数の解が考えられる場合は、良い冒険者の人数が最も多い解を出力せよ。
良い冒険者の人数が最も多い解が複数存在する場合は、
それらの解の中で辞書順で最も若い解を出力せよ。
解が存在しない場合は No answers と出力せよ。
出力の末尾に改行を入れること。
解が存在する場合、入力で与えられる冒険者の中に 1 人以上良い冒険者が含まれることが保証されている。

入力例 1

1
ARTHUR
ARTHUR is a good venturer.

出力例 1

ARTHUR

入力例 2

2
CAIN
COOKIE
COOKIE is a good venturer.
CAIN is a good venturer.

出力例 2

CAIN
COOKIE

入力例 3

2
KONAN
TONNELAT
TONNELAT is a bad venturer.
KONAN is a bad venturer.

出力例 3

KONAN

入力例 4

2
PAOLO
LAND
LAND is a good venturer.
PAOLO is a bad venturer.

出力例 4

No answers
D - 氷柱の上の聖剣

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

勇者一行は伝説の聖剣が眠っているという氷の洞窟へとやって来た。

ダンジョンの一番奥の部屋へ足を踏み入れると、
目の前には大きな割れ目が横方向に大きく広がり、足元は崖となっていた。
勇者が部屋の奥を見ると、対岸に伝説の聖剣が安置されているのが見えた。
割れ目には柱が何本か立っており、崖や柱の間には氷でできた橋がかかっている。
氷の橋は双方向に行き来することができるが、
一度通ると崩れて通れなくなってしまう。

勇者一行がいる崖から聖剣の安置されている崖へ渡り、
かつ戻ってこられるようなルートはあるだろうか?

入力

入力は以下の形式で標準入力から与えられる。
N
S_1
S_2
...
S_N
M
A_1 B_1
A_2 B_2
...
A_M B_M
C
D
  • 1 行目には崖および柱の総数 N (3 ≦ N ≦ 8) が与えられる。
  • 2 行目からの N 行のうち i 行目には i 番目の崖または柱の名前 S_i が与えられる。
    • S_i は大文字英アルファベットからなる。
    • S_i の長さ |S_i|1 ≦ |S_i| ≦ 20 を満たす。
    • i ≠ j のとき S_i ≠ S_j が保証される。
  • N + 2 行目には崖や柱の間にかかっている氷の橋の本数 M (3 ≦ M ≦ N (N - 1) / 2) が与えられる。
  • N + 3 行目からの M 行のうち i 行目には i 番目の氷の橋の両端の崖または柱の名前 A_iB_i が与えられる。
    • ある氷の橋の両端が同一の崖または柱に接続されることがないことが保証される。
    • 複数の氷の橋が同一の崖または柱のペアにかかることがないことが保証される。
  • N + M + 3 行目には勇者一行が立っている崖の名前 C が与えられる。
  • N + M + 4 行目には聖剣が安置されている崖の名前 D が与えられる。
    • C ≠ D が保証される。
  • 入力中では崖と柱が同一視される点に注意せよ。

出力

条件を満たすルート上の崖または柱の名前を結合して 1 行に出力せよ。
名前を結合する際、末尾の勇者一行が立っている崖の名前は省略せよ。
複数の解が考えられる場合は通る橋の本数が最小となるルートを出力せよ。
通る橋の本数が最小となる経路が複数ある場合は、
結合後の文字列を辞書順で比較し最も若いものを出力せよ。
出力の末尾に改行を入れること。
条件を満たすルートが必ず存在することが保証されている。

入力例 1

6
MER
A
AS
U
B
AM
7
MER A
A B
B AM
MER AS
AS AM
MER U
U AM
MER
AM

出力例 1

MERASAMU

入力例 2

6
AB
CD
EF
GH
IJ
KL
6
AB CD
CD EF
EF GH
GH IJ
IJ KL
KL AB
AB
GH

出力例 2

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

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

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

イメージ

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

入力

本問題のみ入力にマルチバイト文字が含まれる。
マルチバイト文字は BOM (Byte Order Mark) なしの UTF-8 でエンコードされている。
入力は以下の形式で標準入力から与えられる。
N
S_1
S_2
...
S_N
  L_1  
  A_1  
L_2A_2□A_3L_3
  A_4  
  L_4  
  • 1 行目には単語の数 N (4 ≦ N ≦ 40,000) が与えられる。
  • 2 行目からの N 行のうち i 行目には i 番目の単語 S_i が与えられる。
    • S_i は Unicode の 0x0021 ~ 0x007E (空白を除いた printable な ASCII 文字) または 0x4E00 ~ 0x9FFF (漢字) の範囲の文字からなる。
    • S_i の長さ |S_i||S_i| = 2 を満たす。
    • i ≠ j のとき S_i ≠ S_j が保証される。
  • N + 2 行目からの 5 行には勇者が夢の中で得たイメージの情報が与えられる。
    • イメージの情報は 55 列からなる。
    • 1245 行目の 1245 文字目はそれぞれ全角スペース   (0x3000) である。
    • 1 行目の 3 文字目、 3 行目の 1 文字目および 5 文字目、 5 行目の 3 文字目は S_1 ... S_N に含まれる文字のいずれかである。
    • 2 行目の 3 文字目および 4 行目の 3 文字目はそれぞれ (0x2191) または (0x2193) である。
    • 3 行目の 2 文字目および 3 行目の 4 文字目はそれぞれ (0x2190) または (0x2192) である。
    • 3 行目の 3 文字目は (0x25AA) である。

出力

イメージから連想される文字 1 文字を 1 行に出力せよ。
マルチバイト文字は 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++” 等で検索されることをおすすめする。
F - やって来たぜ!魔王城!

実行時間制限: 2 sec / メモリ制限: 256 MB

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

問題文

勇者一行は長い旅を経てついに魔王城までやって来た。
早速魔王城に突入しようとしたのだが、
魔王城の扉は強力な封印により閉じられており、びくともしなかった。
この封印はある呪文を唱えると開放されるらしい。
以下のファイルと扉に刻まれた文様をヒントに呪文を導き出し、封印を開放せよ。

ファイル

扉に刻まれた文様

入力

本問題には入力はありません

出力

扉の封印を開放する呪文を大文字英アルファベットで 1 行に出力せよ。
出力の末尾に改行を入れること。
G - 志なかばで死んだ勇者の名は…

実行時間制限: 2 sec / メモリ制限: 256 MB

本問題は問題 F に正解した方のみ読むことができます。
問題 F に正解した方は "[問題 F の出力を小文字にしたもの].yuha.c88@gmail.com" へメールをお送りください。
タイトルと本文が空の場合、自動返信がされない場合があります。
メールを送ったあと自動返信メールが送られてこない場合は、迷惑メールに分類されていないかどうかご確認ださい。
それでも届かない場合はコンテストの質問ページからお問い合わせください。
H - 恐怖!不幸を呼ぶ盾

実行時間制限: 2 sec / メモリ制限: 256 MB

本問題は問題 F に正解した方のみ読むことができます。
問題 F に正解した方は "[問題 F の出力を小文字にしたもの].yuha.c88@gmail.com" へメールをお送りください。
タイトルと本文が空の場合、自動返信がされない場合があります。
メールを送ったあと自動返信メールが送られてこない場合は、迷惑メールに分類されていないかどうかご確認ださい。
それでも届かない場合はコンテストの質問ページからお問い合わせください。
I - 姫への愛情と朽ちた兜

実行時間制限: 2 sec / メモリ制限: 256 MB

本問題は問題 F に正解した方のみ読むことができます。
問題 F に正解した方は "[問題 F の出力を小文字にしたもの].yuha.c88@gmail.com" へメールをお送りください。
タイトルと本文が空の場合、自動返信がされない場合があります。
メールを送ったあと自動返信メールが送られてこない場合は、迷惑メールに分類されていないかどうかご確認ださい。
それでも届かない場合はコンテストの質問ページからお問い合わせください。
J - 勇者最後の戦い!倒せ悪の大魔王!

実行時間制限: 2 sec / メモリ制限: 256 MB

本問題は問題 F に正解した方のみ読むことができます。
問題 F に正解した方は "[問題 F の出力を小文字にしたもの].yuha.c88@gmail.com" へメールをお送りください。
タイトルと本文が空の場合、自動返信がされない場合があります。
メールを送ったあと自動返信メールが送られてこない場合は、迷惑メールに分類されていないかどうかご確認ださい。
それでも届かない場合はコンテストの質問ページからお問い合わせください。