提出 #71491407


ソースコード 拡げる

#include <bits/stdc++.h>

#include <atcoder/all>

using namespace std;
using namespace atcoder;

#define int long long
#define ALL(x) (x).begin(), (x).end()
#define MAX(x) *max_element(ALL(x))
#define MIN(x) *min_element(ALL(x))

typedef pair<int, int> PI;
typedef pair<int, pair<int, int>> PII;
static const int INF = 1010000000000000017LL;
static const double eps = 1e-12;
static const double pi = 3.14159265358979323846;
static const int dx[4] = {1, -1, 0, 0};
static const int dy[4] = {0, 0, 1, -1};
static const int ddx[8] = {1, -1, 0, 0, 1, 1, -1, -1};
static const int ddy[8] = {0, 0, 1, -1, 1, -1, 1, -1};

template <class T>
inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T>
inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}

int N;

signed main() {
    cin >> N;
    vector<int> A(N + 1);
    vector<int> B(N + 5);
    for (int i = 1; i <= N; ++i) {
        cin >> A[i];
        B[i] = A[i] + i - 1;
    }
    auto op = [](int a, int b) { return max(a, b); };
    auto e = []() { return -INF; };
    segtree<int, op, e> seg(B);
    int k = 1;
    while (k <= N) {
        int h = A[k];
        int r = k + h - 1;
        int ma = seg.prod(1, r + 1);
        // cout << "r: " << r << endl;
        // cout << "ma: " << ma << endl;
        if (ma == k || ma >= N) {
            k = ma;
            break;
        }
        k = ma;
    }
    int ans = min(k, N);
    cout << ans << endl;
}

提出情報

提出日時
問題 C - Domino
ユーザ tsuyosshi
言語 C++23 (GCC 15.2.0)
得点 300
コード長 1602 Byte
結果 AC
実行時間 90 ms
メモリ 19340 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 20
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
min.txt AC 1 ms 3600 KiB
random_01.txt AC 89 ms 19244 KiB
random_02.txt AC 33 ms 10216 KiB
random_03.txt AC 89 ms 19256 KiB
random_04.txt AC 17 ms 6900 KiB
random_05.txt AC 85 ms 19340 KiB
random_06.txt AC 84 ms 19016 KiB
random_07.txt AC 86 ms 19244 KiB
random_08.txt AC 48 ms 15816 KiB
random_09.txt AC 85 ms 19288 KiB
random_10.txt AC 67 ms 17640 KiB
random_11.txt AC 85 ms 19316 KiB
random_12.txt AC 24 ms 9652 KiB
random_13.txt AC 45 ms 19312 KiB
random_14.txt AC 90 ms 19256 KiB
random_15.txt AC 88 ms 19340 KiB
random_16.txt AC 88 ms 19288 KiB
sample_01.txt AC 1 ms 3532 KiB
sample_02.txt AC 1 ms 3532 KiB
sample_03.txt AC 1 ms 3416 KiB