Submission #3638796


Source Code Expand

#include <bits/stdc++.h>
#define ll long long
#define REP(i, n) for (ll i = 0, max_i = (n); i < max_i; i++)
#define REPI(i, a, b) for (ll i = (a), max_i = (b); i < max_i; i++)
#define ALL(obj) (obj).begin(), (obj).end()
#define RALL(obj) (obj).rbegin(), (obj).rend()
#define fi first
#define se second
#define pb push_back
#define debug(x) cerr << #x << ": " << (x) << endl
#define debug2(x, y) cerr << #x << ": " << (x) << " " << #y << ": " << y << endl;
#define int long long
using namespace std;
using II = pair<int, int>;
using VII = vector<II>;
using VI = vector<int>;
using VVI = vector<VI>;
using VVVI = vector<VVI>;
template <class T = int> inline T in() { T x; cin >> x; return x; }
template <class T = int> inline bool chmax(T &a, const T &b) { if (a < b) { a = b; return true; } return false; }
template <class T = int> inline bool chmin(T &a, const T &b) { if (a > b) { a = b; return true; } return false; }
template <class T> ostream& operator<<(ostream &s, const vector<T>& d) { int n = d.size(); REP (i, n) s << d[i] << " "; return s; }
template <class T> ostream& operator<<(ostream &s, const vector<vector<T>>& dd) { for (vector<T> d: dd) s << d << endl; return s; }
struct Fast { Fast() { cin.tie(0); ios::sync_with_stdio(false); } } fast;
const int MOD = 1e9 + 7;

template <class T = int>
class SegTree {
  using VT = vector<T>;
  int orig_n;
  // k番目のノードの[l, r)について[a, b)を求める
  T query(int a, int b, int k, int l, int r) {
    if (r <= a || b <= l) { return UNIT; }
    if (a <= l && r <= b) { return dat[k]; }
    T vl = query(a, b, k * 2 + 1, l, (l + r) / 2);
    T vr = query(a, b, k * 2 + 2, (l + r) / 2, r);
    return f(vl, vr);
  }
public:
  int N;
  VT dat;
  function<T(T, T)> f;
  T UNIT;
  SegTree() {}
  SegTree(int n, function<T(T, T)> f_, const T unit) : orig_n(n), f(f_), UNIT(unit) {
    for (N = 1; N < n; N *= 2);
    dat = VT(2 * N - 1, UNIT);
  }
  SegTree(const VT& a, function<T(T, T)> f_ = [](int a, int b) { return min(a, b); }, T unit = 1e15)
  : orig_n(a.size()), f(f_), UNIT(unit) {
    for (N = 1; N < a.size(); N *= 2);
    dat = VT(2 * N - 1);
    REP (i, a.size()) {
      dat[N - 1 + i] = a[i];
    }
    for (int k = N - 2; k >= 0; k--) {
      dat[k] = f(dat[2 * k + 1], dat[2 * k + 2]);
    }
  }
  // k番目をaに
  void update(int k, int a) {
    k += N - 1;
    dat[k] = a;
    while (k > 0) {
      k = (k - 1) / 2;
      dat[k] = f(dat[2 * k + 1], dat[2 * k + 2]);
    }
  }
  // [a, b)でのクエリ
  T query(int a, int b) {
    assert(0 <= a && a < b && b <= orig_n);
    return query(a, b, 0, 0, N);
  }
};

signed main() {
  int N, M, K; cin >> N >> M >> K;
  VI A(N);
  REP (i, N) cin >> A[i];
  auto f = [](int a, int b) { return max(a, b); };
  vector<SegTree<>> sts(K + 1, SegTree<>(N + 1, f, 0));
  REPI (i, 1, K + 1) {
    REPI (j, 1, N + 1) {
      int bef = sts[i - 1].query(max(0ll, j - M), j);
      sts[i].update(j, bef + i * A[j - 1]);
    }
  }
  cout << sts[K].query(0, N + 1) << endl;
}

Submission Info

Submission Time
Task A - Struck Out
User knshnb
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3090 Byte
Status WA
Exec Time 2142 ms
Memory 620800 KB

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
TLE × 3
AC × 10
WA × 2
AC × 19
WA × 2
AC × 27
WA × 4
TLE × 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 2 ms 384 KB
subtask_1_2.txt AC 576 ms 78848 KB
subtask_1_3.txt TLE 2140 ms 620800 KB
subtask_1_4.txt AC 31 ms 4736 KB
subtask_1_5.txt AC 125 ms 15360 KB
subtask_1_6.txt WA 6 ms 1152 KB
subtask_1_7.txt TLE 2116 ms 210304 KB
subtask_1_8.txt TLE 2142 ms 620800 KB
subtask_1_9.txt WA 21 ms 2688 KB
subtask_2_1.txt AC 3 ms 512 KB
subtask_2_2.txt AC 2 ms 384 KB
subtask_2_3.txt AC 2 ms 384 KB
subtask_2_4.txt AC 2 ms 384 KB
subtask_2_5.txt WA 1 ms 256 KB
subtask_2_6.txt WA 1 ms 256 KB
subtask_2_7.txt AC 3 ms 512 KB
subtask_2_8.txt AC 3 ms 512 KB
subtask_2_9.txt AC 2 ms 512 KB
subtask_3_1.txt AC 826 ms 66688 KB
subtask_3_2.txt AC 962 ms 66688 KB
subtask_3_3.txt AC 949 ms 64640 KB
subtask_3_4.txt AC 763 ms 66560 KB
subtask_3_5.txt AC 29 ms 4480 KB
subtask_3_6.txt AC 440 ms 35968 KB
subtask_3_7.txt AC 720 ms 66688 KB
subtask_3_8.txt AC 85 ms 8704 KB
subtask_3_9.txt AC 860 ms 66688 KB
subtask_4_1.txt TLE 2141 ms 620800 KB
subtask_4_10.txt TLE 2140 ms 620800 KB
subtask_4_11.txt TLE 2140 ms 620800 KB
subtask_4_12.txt TLE 2140 ms 620800 KB
subtask_4_13.txt TLE 2141 ms 620800 KB
subtask_4_2.txt TLE 2140 ms 620800 KB
subtask_4_3.txt TLE 2140 ms 620800 KB
subtask_4_4.txt TLE 2140 ms 620800 KB
subtask_4_5.txt TLE 2135 ms 526336 KB
subtask_4_6.txt AC 529 ms 52352 KB
subtask_4_7.txt TLE 2123 ms 329344 KB
subtask_4_8.txt TLE 2140 ms 620800 KB
subtask_4_9.txt TLE 2120 ms 275968 KB