はまやんはまやんはまやん

hamayanhamayan's blog

無敵囲い [yukicoder 870]

https://yukicoder.me/problems/no/870

解説

https://yukicoder.me/submissions/374446

シミュレーションしていこう。
A,B,Cの駒を動かしていって、最終的に指定の座標になるかを見ればいい。
駒毎に位置を持つのではなくて、盤面全体を管理すれば、操作はswapで実装でき、
ほんのちょっと楽。

int N;
char B[11][11];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(y, 1, 10) rep(x, 1, 10) B[y][x] = '.';
    B[8][2] = 'A';
    B[9][3] = 'B';
    B[9][7] = 'C';

    rep(i, 0, N) {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        swap(B[y1][x1], B[y2][x2]);
    }

    if(B[8][5] == 'A' and B[8][4] == 'B' and B[8][6] == 'C') cout << "YES" << endl;
    else cout << "NO" << endl;
}