結果

問題 No.1941 CHECKER×CHECKER(1)
ユーザー naoya_jellynaoya_jelly
提出日時 2022-05-24 10:18:46
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 3,348 bytes
コンパイル時間 1,873 ms
コンパイル使用メモリ 169,556 KB
実行使用メモリ 4,348 KB
最終ジャッジ日時 2023-10-20 17:55:33
合計ジャッジ時間 2,679 ms
ジャッジサーバーID
(参考情報)
judge11 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,348 KB
testcase_01 AC 2 ms
4,348 KB
testcase_02 AC 2 ms
4,348 KB
testcase_03 AC 2 ms
4,348 KB
testcase_04 AC 2 ms
4,348 KB
testcase_05 AC 2 ms
4,348 KB
testcase_06 AC 2 ms
4,348 KB
testcase_07 AC 2 ms
4,348 KB
testcase_08 AC 2 ms
4,348 KB
testcase_09 AC 2 ms
4,348 KB
testcase_10 AC 2 ms
4,348 KB
testcase_11 AC 2 ms
4,348 KB
testcase_12 AC 2 ms
4,348 KB
testcase_13 AC 2 ms
4,348 KB
testcase_14 AC 2 ms
4,348 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

/**
*    author:  NaoyaIMAI
*    created: 24.05.2022 10:10:49
**/

/*

*/

#include <bits/stdc++.h>
using namespace std;
//#include<atcoder/all>
//using namespace atcoder;
using ll = long long;
#define INF32 2147483647
#define MOD 1000000007
const long long INF = 1LL << 60;
template<class T> bool chmax(T &a,const T &b){if(a<b){a=b;return 1;} return 0;}
template<class T> bool chmin(T &a,const T &b){if(b<a){a=b;return 1;} return 0;}
template<class T> using min_priority_queue = priority_queue<T, vector<T>, greater<T>>;
template<class T> using Graph = vector<vector<T>>;
#define ALL(a) (a).begin(), (a).end()
// vector<vector<要素の型>> 変数名(縦の要素数, vector<要素の型>(横の要素数));
// vector<pair<型, 型>> P; この段階で要素数を指定すると、指定板分だけ0埋めされたpairが作られちゃう
// vec1.push_back(make_pair(a, b));
// vector<set<int>> graph; 重複を許さず、勝手にソートしてくれる、vector成分に関してはソートなし、set内部でだけsortする
// cout << fixed << setprecision(10) << endl;
// int min_a = *min_element(ALL(a));
// cout << min_a << endl;

// vector<int> Aに関する関数
// 可変長倍列は末尾への挿入と削除が素早く行える、先頭は早くない
// 反転
// reverse(A.begin(), A.end())
// vを末尾に追加
// A.push_back(v)
// 末尾を削除
// A.pop_back()
// 先頭を出力
// A.front()
// 末尾を出力
// A.back()
// 先頭を削除
// A.erase(A.begin())
// 要素vをカウント
// count(A.begin(), A.end(), v)
// k番目の要素を削除
// A.erase(A.begin() + k)
// k番目に要素vを挿入
// A.insert(A.begin() + k, v)

// mapは重複を許さない、keyとvalue
// map<string, int> mp;
// for (const auto & [key, value] : mp) {
//     cout << key << " : " << value << endl;
// }

int main(){
    vector<string> S(3);
    for (int i = 0; i < 3; i++) {
        cin >> S[i];
    }
    // for (int i = 0; i < 3; i++) {
    //     for (int j = 0; j < 3; j++) {
    //         cout << S[i][j];
    //     }
    //     cout << endl;
    // }

    int dummy_count = 0;
    bool flag_even = true;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if ((i + j) % 2 == 0) {
                if (S[i][j] == '#') {
                    dummy_count++;
                } else {
                    flag_even = false;
                }
            }
            if ((i + j) % 2 != 0) {
                if (S[i][j] == '.') {
                    dummy_count++;
                } else {
                    flag_even = false;
                }
            }
        }
    }
    bool flag_odd = true;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if ((i + j) % 2 != 0) {
                if (S[i][j] == '#') {
                    dummy_count++;
                } else {
                    flag_odd = false;
                }
            }
            if ((i + j) % 2 == 0) {
                if (S[i][j] == '.') {
                    dummy_count++;
                } else {
                    flag_odd = false;
                }
            }
        }
    }
    if (flag_even || flag_odd) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    return 0;
}

/*---------------------------------------------------*/
0