ABC463B - Train Reservation
考え方
問題の指示通りに、全ての列車について、目的の席があいているかチェックすればよい。
少し難しいのは、'A' のときは $0$ 番目、'D' のときは $3$ 番目、などの変換。
これは実は x - 'A' という計算をすることで、x が 'A' のいくつ後の文字なのかを求められる。
これさえわかれば、あとは指示通りのコードを書くだけである。
入力例1での動作
入力を受け取る。
n: 3
x: 'A'
s: {"xoxox",
"xxooo",
"oxxxx"}
答えを表す変数 result を "No" で初期化する。
result: "No"
それぞれの列車について、x - 'A'、つまり $0$ 番目の文字を確認していく。
$1$ 本目の列車を見る。
$0$ 番目の文字は 'x' なので、指定された列に空席はない。
str: "xoxox"
str.at(x - 'A'): 'x'
result: "No"
$2$ 本目の列車を見る。
$0$ 番目の文字は 'x' なので、指定された列に空席はない。
str: "xxooo"
str.at(x - 'A'): 'x'
result: "No"
$3$ 本目の列車を見る。
$0$ 番目の文字は 'o' なので、指定された列に空席がある。
そのため、出力文字列を "Yes" に変更する。
str: "oxxxx"
str.at(x - 'A'): 'o'
result: "Yes"
結果として "Yes" を出力する。
注意点
特になし。
別解
特になし。