Submission #3381118


Source Code Expand

import strutils
import sequtils
import algorithm
import math
import queues
import tables
import sets
import logging
import future

const INF* = int(1e18 + 373)

proc readSeq*(): seq[string] = stdin.readLine().strip().split()
proc readSeq*(n: Natural): seq[string] =
  result = newSeq[string](n)
  for i in 0..<n:
    result[i] = stdin.readLine().strip()

proc readInt1*(): int = readSeq().map(parseInt)[0]
proc readInt2*(): (int, int) =
  let a = readSeq().map(parseInt)
  return (a[0], a[1])
proc readInt3*(): (int, int, int) =
  let a = readSeq().map(parseInt)
  return (a[0], a[1], a[2])
proc readInt4*(): (int, int, int, int) =
  let a = readSeq().map(parseInt)
  return (a[0], a[1], a[2], a[3])

type seq2*[T] = seq[seq[T]]
proc newSeq2*[T](n1, n2: Natural): seq2[T] = newSeqWith(n1, newSeq[T](n2))

#------------------------------------------------------------------------------#
type Op2[T] = proc(a, b: T): T
type SegmentTree[T] = tuple[ n: int, a: seq[T], e: T, f: Op2[T] ]

proc initSegmentTree[T](n: int, e: T, f: Op2[T]): SegmentTree[T] =
    var m = 1
    while m < n:
        m *= 2

    var a = newSeq[T](2 * m)
    a.fill(e)
    return (m, a, e, f)

proc update[T](this: var SegmentTree[T], i: int, x: T) =
    this.a[this.n + i] = x
    var j = (this.n + i) div 2
    while j > 0:
        this.a[j] = this.f(this.a[j * 2], this.a[j * 2 + 1])
        j = j div 2

proc query[T](this: SegmentTree[T], s, t, i, ll, hh: int): T =
    if t <= ll or hh <= s:
        return this.e
    if s <= ll and hh <= t:
        return this.a[i]

    let m = (ll + hh) div 2
    let vl = this.query(s, t, i * 2, ll, m)
    let vh = this.query(s, t, i * 2 + 1, m, hh)
    return this.f(vl, vh)

proc query[T](this: SegmentTree[T], s, t: int): T = query(this, s, t, 1, 0, this.n)

#------------------------------------------------------------------------------#

proc main() =
  let (n, m, k) = readInt3()
  let a = readSeq().map(parseInt)

  var dp = newSeq2[int](n, k)
  for j in 1..<k:
    dp[0][j] = -INF

  var segtree = initSegmentTree[int](n, -INF, (a: int, b: int) => max(a, b))
  for j in 1..<k:
    for i in 0..<n:
      let v = dp[i][j - 1]
      segtree.update(i, if v <= -INF: -INF else: v + j * a[i])
    for i in 1..<n:
      dp[i][j] = segtree.query(max(i - m, 0), i)

  var ans = 0
  for i in 0..<n:
    if dp[i][k - 1] <= -INF:
      continue
    ans = max(ans, dp[i][k - 1] + k * a[i])
  echo ans

main()

Submission Info

Submission Time
Task A - Struck Out
User somq14
Language Nim (0.13.0)
Score 500
Code Size 2514 Byte
Status TLE
Exec Time 2163 ms
Memory 809884 KB

Compile Error

Hint: system [Processing]
Hint: Main [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: sequtils [Processing]
Hint: algorithm [Processing]
Hint: math [Processing]
Hint: times [Processing]
Hint: queues [Processing]
Hint: tables [Processing]
Hint: hashes [Processing]
Hint: etcpriv [Processing]
Hint: sets [Processing]
Hint: os [Processing]
Hint: posix [Processing]
Hint: logging [Processing]
lib/pure/logging.nim(128, 22) Hint: 'Exception' is declared but not used [XDeclaredButNotUsed]
Hint: future [Processing]
Hint: macros [Processing]
Hint:  [Link]
Hint: operation successful (24879 lines compiled; 2.675 sec total; 25.256MB; Release Build) [SuccessX]

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 × 7
TLE × 3
AC × 12
AC × 21
AC × 31
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 1 ms 380 KB
subtask_1_2.txt AC 934 ms 81020 KB
subtask_1_3.txt TLE 2160 ms 807488 KB
subtask_1_4.txt AC 27 ms 3836 KB
subtask_1_5.txt AC 106 ms 21768 KB
subtask_1_6.txt AC 4 ms 1148 KB
subtask_1_7.txt TLE 2123 ms 207440 KB
subtask_1_8.txt TLE 2160 ms 807500 KB
subtask_1_9.txt AC 18 ms 4348 KB
subtask_2_1.txt AC 2 ms 508 KB
subtask_2_2.txt AC 1 ms 380 KB
subtask_2_3.txt AC 2 ms 508 KB
subtask_2_4.txt AC 1 ms 380 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 508 KB
subtask_2_8.txt AC 2 ms 508 KB
subtask_2_9.txt AC 2 ms 508 KB
subtask_3_1.txt AC 951 ms 64580 KB
subtask_3_2.txt AC 1109 ms 64568 KB
subtask_3_3.txt AC 1055 ms 60760 KB
subtask_3_4.txt AC 855 ms 52564 KB
subtask_3_5.txt AC 25 ms 3836 KB
subtask_3_6.txt AC 427 ms 38272 KB
subtask_3_7.txt AC 837 ms 64568 KB
subtask_3_8.txt AC 73 ms 7420 KB
subtask_3_9.txt AC 1024 ms 64572 KB
subtask_4_1.txt TLE 2163 ms 807508 KB
subtask_4_10.txt TLE 2160 ms 809884 KB
subtask_4_11.txt TLE 2160 ms 807432 KB
subtask_4_12.txt TLE 2160 ms 807480 KB
subtask_4_13.txt TLE 2160 ms 807516 KB
subtask_4_2.txt TLE 2159 ms 807532 KB
subtask_4_3.txt TLE 2161 ms 807540 KB
subtask_4_4.txt TLE 2161 ms 807508 KB
subtask_4_5.txt TLE 2160 ms 807492 KB
subtask_4_6.txt AC 573 ms 51908 KB
subtask_4_7.txt TLE 2127 ms 274124 KB
subtask_4_8.txt TLE 2159 ms 797464 KB
subtask_4_9.txt TLE 2127 ms 274108 KB