結果

問題 No.3560 Giant Salamander
コンテスト
ユーザー TKTYI
提出日時 2026-05-21 05:42:29
言語 C++23
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
RE  
実行時間 -
コード長 1,117 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,239 ms
コンパイル使用メモリ 334,160 KB
実行使用メモリ 7,972 KB
最終ジャッジ日時 2026-05-29 18:31:49
合計ジャッジ時間 10,113 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点1 5 % RE * 5
部分点2 20 % AC * 6
部分点3 15 % AC * 11
部分点4 40 % AC * 11 RE * 11
満点 20 % AC * 12 RE * 23
合計 35 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;

// subtask 3

int main() {
    int T;
    cin >> T;
    int sumN = 0;
    while (T--) {
        int N, M;
        cin >> N >> M;
        vector<int> A(M), B(M);
        for (int i = 0; i < M; i++) {
            cin >> A[i] >> B[i];
            A[i]--;
        }
        sumN += N;
        assert(sumN <= 2'000);
        vector<int> C(M + 1);
        for (int i = 0; i < M; i++) {
            C[i + 1] = C[i] + B[i];
        }
        bool ok = false;
        for (int l = 0; l < N; l++) {
            vector<int> L(M), R(M);
            L[0] = l;
            for (int i = 0; i < M; i++) {
                R[i] = L[i] + B[i] - 1;
                if (i + 1 < M) L[i + 1] = R[i] + 1;
            }
            bool valid = true;
            for (int i = 0; i < M; i++) {
                if (!((L[i] <= A[i] && A[i] <= R[i]) || (L[i] <= A[i] + N && A[i] + N <= R[i]))) {
                    valid = false;
                }
            }
            if (valid) ok = 1;
        }
        if (ok) cout << "Yes" << endl;
        else cout << "No" << endl;
    }
    return 0;
}
0