けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 077 A - Rotation (灰色, 100 点)

少し空間認識能力が問われるかもしれない。

問題概要

2 × 3 のグリッドが与えられる。各マスにはアルファベット文字が書かれている。

このグリッドを 180° 回転して一致するかどうかを判定せよ。

解法

入力を 2 つの文字列 S, T として受け取ることにしよう。このとき、

S[0] S[1] S[2]
T[0] T[1] T[2]

を 180° 回転すると、次のようになる。

T[2] T[1] T[0]
S[2] S[1] S[0]

これらが一致するとは、次の 3 つの条件が成り立つことを意味する。

  • S[0] == T[2]
  • S[1] == T[1]
  • S[2] == T[0]

あとはこれを判定すれば OK。

#include <bits/stdc++.h>
using namespace std;

int main() {
    string S, T;
    cin >> S >> T;
    if (S[0] == T[2] && S[1] == T[1] && S[2] == T[0])
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
}