AGC007 A - Shik and Stone
問題
グリッドを左上から右下まで移動した。移動したマスは'#'であり、そうでないマスは'.'である。何度も同じ場所を行き来することもある。右または下にだけ移動した可能性のある場合は"Possible"、そうでない場合は"Impossible"を出力せよ。
解答
必ず左上から右下まで移動したので、'#'のマスの数が個分存在するか調べるだけで良い。 また、左上から右下まで、右または下の移動で到達できるかシミュレートしても良い。ただし、その場合は次のようなケースに注意する。
3 3 #.. #.# ###
このケースでは、右下に到達した後に上に移動している。右下に到達した後に左に移動するようなケースも同様に注意する。
int main() { int H, W; cin >> H >> W; int sum = 0; rep(i, H) { string A; cin >> A; sum += count(A.begin(), A.end(), '#'); } cout << (sum == H + W - 1 ? "P":"Imp") << "ossible\n"; return 0; }