Submission #3630179


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using i64 = int64_t;
using vi = vector<i64>;
using vvi = vector<vi>;

template <class T>
class SegTree {
    using F = function<T(T, T)>;
    int n;
    vector<T> data;
    F f;
    T e;

public:
    SegTree<T>() {}
    SegTree<T>& operator=(const SegTree<T>& t) {
        n = t.n;
        data = t.data;
        f = t.f;
        e = t.e;
        return *this;
    }

    SegTree<T>(const vector<T>& as, const F f, const T& e) : f(f), e(e) {
        n = 1;
        while (n < as.size()) n <<= 1;
        data.assign(2 * n, e);
        for (int i = 0; i < as.size(); i++) {
            data[n + i] = as[i];
        }
        for (int i = n - 1; i > 0; i--) {
            data[i] = f(data[2 * i], data[2 * i + 1]);
        }
    }

    void update(int k, const T& x) {
        k += n;
        data[k] = x;
        while (k >>= 1) {
            data[k] = f(data[2 * k], data[2 * k + 1]);
        }
    }

    T query(int a, int b) {
        T L = e, R = e;
        for (a += n, b += n; a < b; a >>= 1, b >>= 1) {
            if (a & 1) {
                L = f(L, data[a++]);
            }
            if (b & 1) {
                R = f(data[--b], R);
            }
        }
        return f(L, R);
    }
};

int main() {
    int n, m, k;
    cin >> n >> m >> k;
    vi as(n);
    for (int i = 0; i < n; i++) {
        cin >> as[i];
    }

    SegTree<i64> dp(as, [](i64 a, i64 b){return max(a, b);}, -1e18);
    for (int i = 0; i < k - 1; i++) {
        SegTree<i64> dp2(vi(n), [](i64 a, i64 b){return max(a, b);}, -1e18);
        for (int j = i + 1; j < n; j++) {
            dp2.update(j, (i + 2) * as[j] + dp.query(max(0, j - m), j));
        }
        vi tmp(n);
        for (int i = 0; i < n; i++) {
            tmp[i] = dp2.query(i, i + 1);
        }
        dp = SegTree<i64>(tmp, [](i64 a, i64 b){return max(a, b);}, -1e18);
    }
    i64 nax = -1;
    for (int i = 0; i < n; i++) {
        nax = max(nax, dp.query(i, i + 1));
    }
    cout << nax << endl;
}

Submission Info

Submission Time
Task A - Struck Out
User xuzijian629
Language C++14 (GCC 5.4.1)
Score 500
Code Size 2096 Byte
Status TLE
Exec Time 2107 ms
Memory 8008 KB

Judge Result

Set Name Sample subtask1 subtask2 subtask3 All
Score / Max Score 0 / 0 0 / 100 200 / 200 300 / 300 0 / 100
Status
AC × 3
AC × 8
TLE × 2
AC × 12
AC × 21
AC × 32
TLE × 14
Set Name Test Cases
Sample sample_1.txt, sample_2.txt, sample_3.txt
subtask1 sample_2.txt, subtask_1_1.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
subtask2 sample_1.txt, sample_2.txt, sample_3.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt
subtask3 sample_1.txt, sample_2.txt, sample_3.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt
All sample_1.txt, sample_2.txt, sample_3.txt, sample_1.txt, sample_2.txt, sample_3.txt, subtask_1_1.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt, subtask_4_1.txt, subtask_4_10.txt, subtask_4_11.txt, subtask_4_12.txt, subtask_4_13.txt, subtask_4_2.txt, subtask_4_3.txt, subtask_4_4.txt, subtask_4_5.txt, subtask_4_6.txt, subtask_4_7.txt, subtask_4_8.txt, subtask_4_9.txt
Case Name Status Exec Time Memory
sample_1.txt AC 1 ms 256 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
subtask_1_1.txt AC 2 ms 256 KB
subtask_1_2.txt AC 474 ms 1228 KB
subtask_1_3.txt TLE 2104 ms 8008 KB
subtask_1_4.txt AC 27 ms 768 KB
subtask_1_5.txt AC 118 ms 8008 KB
subtask_1_6.txt AC 4 ms 256 KB
subtask_1_7.txt AC 1862 ms 8008 KB
subtask_1_8.txt TLE 2104 ms 8008 KB
subtask_1_9.txt AC 13 ms 256 KB
subtask_2_1.txt AC 2 ms 256 KB
subtask_2_2.txt AC 2 ms 256 KB
subtask_2_3.txt AC 2 ms 256 KB
subtask_2_4.txt AC 2 ms 256 KB
subtask_2_5.txt AC 1 ms 256 KB
subtask_2_6.txt AC 1 ms 256 KB
subtask_2_7.txt AC 2 ms 256 KB
subtask_2_8.txt AC 2 ms 256 KB
subtask_2_9.txt AC 2 ms 256 KB
subtask_3_1.txt AC 587 ms 8008 KB
subtask_3_2.txt AC 543 ms 8008 KB
subtask_3_3.txt AC 537 ms 8008 KB
subtask_3_4.txt AC 448 ms 7704 KB
subtask_3_5.txt AC 25 ms 768 KB
subtask_3_6.txt AC 236 ms 8008 KB
subtask_3_7.txt AC 576 ms 8008 KB
subtask_3_8.txt AC 52 ms 1228 KB
subtask_3_9.txt AC 443 ms 8008 KB
subtask_4_1.txt TLE 2104 ms 8008 KB
subtask_4_10.txt TLE 2103 ms 8008 KB
subtask_4_11.txt TLE 2104 ms 8008 KB
subtask_4_12.txt TLE 2104 ms 8008 KB
subtask_4_13.txt TLE 2104 ms 8008 KB
subtask_4_2.txt TLE 2104 ms 8008 KB
subtask_4_3.txt TLE 2107 ms 8008 KB
subtask_4_4.txt TLE 2104 ms 8008 KB
subtask_4_5.txt TLE 2104 ms 8008 KB
subtask_4_6.txt AC 446 ms 8008 KB
subtask_4_7.txt TLE 2104 ms 8008 KB
subtask_4_8.txt TLE 2104 ms 7988 KB
subtask_4_9.txt TLE 2104 ms 8008 KB