Dark Knightのオープニングシーンでは、CIAエージェントと悪役Baneの間にやや厄介な会話があります。
CIAエージェント:「その[マスク]を外すと、あなたは死にますか?」
ベイン:「それは非常に痛いでしょう...」
CIAエージェント:「あなたは大物です。」
ベイン:「…あなたのために。」
Baneが「あなたにとって苦痛」または「あなたにとって大きな男」と言うつもりであるかどうかはわかりません。この問題をコードゴルフを通じて一度解決しましょう!
チャレンジ
あなたの仕事は、入力として与えられた整数に応じて上記のダイアログを並べ替えるプログラムを書くことです。
CIAエージェントの対話の言葉は次のとおりです。
If I pull that off will you die? You're a big guy.
ベインの台詞は次のとおりです。
It would be extremely painful... for you!
それを注意してくださいdie?、You’re、painful...およびyou!単一の単語として考えられています。
- 整数nを入力として、バイナリに変換します
- 2進数を左から右に読み取り、数字がの場合はCIAエージェントダイアログから次の単語を出力し
1、数字がの場合はBaneダイアログから次の単語を出力し0ます。単語はスペースで区切る必要があります。スピーカーが変わったら、改行を追加します。また、各ダイアログの行の前にスピーカー名(BANE:またはCIA:)を付けます。
入力は常にバイナリ形式の1で始まり、12個の1と7個のゼロがあると仮定できます。
例
522300
バイナリに変換:
1111111100000111100番号は8個で始まるため、CIAのエージェントダイアログから最初の8個の単語を出力し、CIAをプレフィックスとして付けます。
CIA: If I pull that off will you die?その後、5つのゼロを取得したので、Baneのダイアログから最初の5つの単語を取得します。
BANE: It would be extremely painful...次に、4つの単語があるので、次の4つのCIA単語を出力します。
CIA: You’re a big guy.次に、2つのゼロ:
BANE: for you!
最終結果:
CIA: If I pull that off will you die?
BANE: It would be extremely painful...
CIA: You’re a big guy.
BANE: for you!
その他のテストケース:
494542
CIA: If I pull that
BANE: It would be
CIA: off
BANE: extremely
CIA: will you die? You're
BANE: painful... for
CIA: a big guy.
BANE: you!
326711
CIA: If
BANE: It would
CIA: I pull that off will you
BANE: be extremely painful... for
CIA: die? You're
BANE: you!
CIA: a big guy.