Submission #8650103


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using i64 = int_fast64_t;
#define repeat(i, a, b) for(int i = (a); (i) < (b); ++(i))
#define rep(i, n) repeat(i, 0, n)
const i64 CYCLES_PER_SEC = 2800000000;

struct Timer {
    i64 start;

    Timer() { reset(); }

    void reset() { start = getCycle(); }

    inline double get() {
        return (double)(getCycle() - start) / CYCLES_PER_SEC * 1000;
    }

   private:
    inline i64 getCycle() {
        uint32_t low, high;
        __asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
        return ((i64)low) | ((i64)high << 32);
    }
} timer;

/* SegmentTree */
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) {
        assert(a >= 0 and b <= n);
        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);
    }

    T operator[](const int& k) const { return data[k + n]; }
};

// https://atcoder.jp/contests/cf16-tournament-round3-open/tasks/asaporo_d
void asaporo_d() {
    int n, m, k;
    scanf("%d%d%d", &n, &m, &k);
    std::vector<i64> a(n);
    rep(i, n) scanf("%ld", &a[i]);
    a.insert(a.begin(), 0LL);

    timer.reset();
    SegTree<i64> seg(std::vector<i64>(n + 1, 0),
                     [](i64 a, i64 b) { return std::max<i64>(a, b); }, -1e18);

    std::vector<std::vector<i64>> dp(
        n + 1, std::vector<i64>(k + 1, static_cast<i64>(0)));
    for(i64 j = 0; j < k; j++) {
        if(timer.get() > 1000) assert(0);
        for(i64 i = 1; i <= n; i++) {
            if(j >= i) dp[i][j + 1] = 0;
            dp[i][j + 1] = (j + 1) * a[i] + seg.query(max<i64>(i - m, 0), i);
        }
        rep(i, n + 1) seg.update(i, dp[i][j + 1]);
        // rep(i, n + 1) printf("%ld ", seg[i]);
        // printf("\n");
    }
    i64 ret = 0;
    printf("%ld\n", seg.query(0, n + 1));
}

int main() {
    asaporo_d();
    return 0;
}

Submission Info

Submission Time
Task A - Struck Out
User edamat
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2921 Byte
Status RE
Exec Time 1137 ms
Memory 241392 KB

Compile Error

./Main.cpp: In function ‘void asaporo_d()’:
./Main.cpp:85:32: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d", &n, &m, &k);
                                ^
./Main.cpp:87:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     rep(i, n) scanf("%ld", &a[i]);
                                  ^

Judge Result

Set Name Sample subtask1 subtask2 subtask3 All
Score / Max Score 0 / 0 0 / 100 0 / 200 0 / 300 0 / 100
Status
AC × 3
AC × 5
WA × 2
RE × 3
AC × 10
WA × 2
AC × 19
WA × 2
AC × 27
WA × 4
RE × 15
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 1 ms 256 KB
subtask_1_2.txt AC 430 ms 24448 KB
subtask_1_3.txt RE 1130 ms 241392 KB
subtask_1_4.txt AC 22 ms 1920 KB
subtask_1_5.txt AC 95 ms 11632 KB
subtask_1_6.txt WA 4 ms 512 KB
subtask_1_7.txt RE 1119 ms 85104 KB
subtask_1_8.txt RE 1127 ms 241392 KB
subtask_1_9.txt WA 14 ms 1408 KB
subtask_2_1.txt AC 2 ms 384 KB
subtask_2_2.txt AC 1 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 WA 1 ms 256 KB
subtask_2_6.txt WA 1 ms 256 KB
subtask_2_7.txt AC 2 ms 384 KB
subtask_2_8.txt AC 2 ms 384 KB
subtask_2_9.txt AC 2 ms 384 KB
subtask_3_1.txt AC 581 ms 30448 KB
subtask_3_2.txt AC 574 ms 30448 KB
subtask_3_3.txt AC 566 ms 30448 KB
subtask_3_4.txt AC 444 ms 24844 KB
subtask_3_5.txt AC 21 ms 1792 KB
subtask_3_6.txt AC 201 ms 19440 KB
subtask_3_7.txt AC 554 ms 30448 KB
subtask_3_8.txt AC 43 ms 3328 KB
subtask_3_9.txt AC 548 ms 30448 KB
subtask_4_1.txt RE 1127 ms 241392 KB
subtask_4_10.txt RE 1132 ms 241392 KB
subtask_4_11.txt RE 1129 ms 241392 KB
subtask_4_12.txt RE 1130 ms 241392 KB
subtask_4_13.txt RE 1126 ms 241392 KB
subtask_4_2.txt RE 1128 ms 241392 KB
subtask_4_3.txt RE 1127 ms 241392 KB
subtask_4_4.txt RE 1122 ms 241392 KB
subtask_4_5.txt RE 1136 ms 205424 KB
subtask_4_6.txt AC 386 ms 25712 KB
subtask_4_7.txt RE 1137 ms 130416 KB
subtask_4_8.txt RE 1136 ms 238332 KB
subtask_4_9.txt RE 1121 ms 110064 KB