結果

問題 No.2490 Escalator
ユーザー Sillpherth
提出日時 2025-04-21 20:36:17
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 1,210 bytes
コンパイル時間 848 ms
コンパイル使用メモリ 85,788 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-04-21 20:36:29
合計ジャッジ時間 11,327 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 72 TLE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
using namespace std;

bool check(const vector<int>& S, int N) {
    int size = S.size();

    // 奇数長回文チェック
    for (int i = 0; i < size; ++i) {
        int j = 0;
        while (i - j >= 0 && i + j < size &&
               (S[i - j] == S[i + j] || S[i - j] == -1 || S[i + j] == -1)) {
            ++j;
        }
        if ((2 * j - 1) > N) return true;
    }

    // 偶数長回文チェック
    for (int i = 0; i < size; ++i) {
        int j = 0;
        while (i - j >= 0 && i + j + 1 < size &&
               (S[i - j] == S[i + j + 1] || S[i - j] == -1 || S[i + j + 1] == -1)) {
            ++j;
        }
        if (2 * j > N) return true;
    }

    return false;
}

int main() {
    ios::sync_with_stdio(false);  // cin/cout の高速化
    cin.tie(0);                   // cin のタイミング調整

    int N;
    cin >> N;
    vector<int> A(2 * N);
    for (int i = 0; i < 2 * N; ++i) {
        cin >> A[i];
    }

    // AA = A + A(連結)
    vector<int> AA(4 * N);
    for (int i = 0; i < 2 * N; ++i) {
        AA[i] = A[i];
        AA[i + 2 * N] = A[i];
    }

    cout << (check(AA, N) ? "Yes" : "No") << '\n';
    return 0;
}
0