【AtCoder】ABC 480 A - ADjacent

A - ADjacentatcoder.jp favicon

実行時間制限: 2 sec / メモリ制限: 1024 MiB / Difficulty: 35 / NoviSteps: 6Q / 配点: 100 点

問題概要

2×22 \times 2 のグリッドがある。 グリッドの各マスにはA, B, C, Dのいずれかがちょうど 11 つ書かれており、44 マスに書かれている文字は相異なる。

Aが書かれたマスとDが書かれたマスが隣接しているかどうかを判定せよ。

制約

  • 問題文の通り。

考察

条件を満たさない場合は次の4通りである。

  • 左上がAで右下がD
  • 右上がAで左下がD
  • 左上がDで右下がA
  • 右上がDで左下がA

このパターンならNoを出力し、それ以外のパターンならYesを出力すればよい。

実装例

CPP
1.#include <bits/stdc++.h>
2.using namespace std;
3.
4.// ======================================== //
5.
6.int main()
7.{
8. string s1, s2;
9. cin >> s1 >> s2;
10.
11. if ((s1[0] == 'A' && s2[1] == 'D')
12. || (s1[1] == 'A' && s2[0] == 'D')
13. || (s1[0] == 'D' && s2[1] == 'A')
14. || (s1[1] == 'D' && s2[0] == 'A'))
15. {
16. cout << "No" << endl;
17. }
18. else
19. {
20. cout << "Yes" << endl;
21. }
22.
23. return 0;
24.}
atcoder.jp favicon

実装時間: 5 分以内

コメント

A問題にしては実装が重い気がする。