結果
| 問題 | 
                            No.2518 Adjacent Larger
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2023-10-27 22:33:47 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,498 bytes | 
| コンパイル時間 | 514 ms | 
| コンパイル使用メモリ | 73,496 KB | 
| 最終ジャッジ日時 | 2025-02-17 15:25:48 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 23 WA * 5 | 
ソースコード
#include <iostream>
#include <vector>
int main() {
    int t;
    std::cin >> t;
    for (int i = 0; i < t; i++) {
        int n;
        std::cin >> n;
        std::vector<int> a(n + 2);
        for (int j = 1; j <= n; j++) {
            std::cin >> a.at(j);
        }
        a.at(0) = a.at(n);
        a.at(n + 1) = a.at(1);
        int total = 0;
        bool flag = true, is_zero = false, is_two = false;
        for (int j = 1; j <= n; j++) {
            if (a.at(j) == 0) {
                is_zero = true;
                if (a.at(j - 1) == 0 || a.at(j + 1) == 0) {
                    std::cout << "No" << std::endl;
                    flag = false;
                    break;
                }
            } else if (a.at(j) == 2) {
                is_two = true;
                if (a.at(j - 1) == 2 || a.at(j + 1) == 2) {
                    std::cout << "No" << std::endl;
                    flag = false;
                    break;
                }
            } else {
                if ((a.at(j - 1) == 2 && a.at(j + 1) == 2) || (a.at(j - 1) == 0 && a.at(j + 1) == 0)) {
                    std::cout << "No" << std::endl;
                    flag = false;
                    break;
                }
            }
            total += a.at(j);
        }
        if (flag) {
            if (is_zero && is_two && total == n) {
                std::cout << "Yes" << std::endl;
            } else {
                std::cout << "No" << std::endl;
            }
        }
    }
}