Submission #3388420
Source Code Expand
import strutils import sequtils import algorithm import math import queues import tables import sets 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 Deque[T] = object a: seq[T] s: int t: int proc initDeque[T](init: int = 16): Deque[T] = result.a = newSeq[T](init) result.s = 0 result.t = 0 proc len[T](this: Deque[T]): int = (this.t - this.s + this.a.len()) mod this.a.len() proc ensureCapacity[T](this: var Deque[T]) = let n = this.len() if n < this.a.len() - 1: return var aa = newSeq[int](this.a.len() * 2) for i in 0..<n: aa[i] = this.a[(this.s + i) mod this.a.len()] this.a = aa this.s = 0 this.t = n proc addFirst[T](this: var Deque[T]; e: T) = this.ensureCapacity() this.s = (this.s - 1 + this.a.len()) mod this.a.len() this.a[this.s] = e proc addLast[T](this: var Deque[T]; e: T) = this.ensureCapacity() this.a[this.t] = e this.t = (this.t + 1) mod this.a.len() proc popFirst[T](this: var Deque[T]): T = if this.len() <= 0: raise newException(IndexError, "Deque Is Empty") let res = this.a[this.s] this.s = (this.s + 1) mod this.a.len() return res proc popLast[T](this: var Deque[T]): T = if this.len() <= 0: raise newException(IndexError, "Deque Is Empty") this.t = (this.t - 1 + this.a.len()) mod this.a.len() return this.a[this.t] proc peekFirst[T](this: Deque[T]): T = if this.len() <= 0: raise newException(IndexError, "Deque Is Empty") return this.a[this.s] proc peekLast[T](this: Deque[T]): T = if this.len() <= 0: raise newException(IndexError, "Deque Is Empty") return this.a[(this.t - 1 + this.a.len()) mod this.a.len()] #------------------------------------------------------------------------------# # [i - w, i)の範囲の最大値 proc buildSlideMaximum(a: seq[int]; w: int): seq[int] = let n = a.len() var ans = newSeq[int](n + 1) var deq = initDeque[int]() for i in 1..n: while deq.len() > 0 and a[deq.peekLast()] <= a[i - 1]: discard deq.popLast() deq.addLast(i - 1) while deq.len() > 0 and deq.peekFirst() < i - w: discard deq.popFirst() ans[i] = a[deq.peekFirst()] return ans proc main() = let (n, m, k) = readInt3() let a = readSeq().map(parseInt) var dp = newSeq2[int](k, n) for i in 1..<k: dp[i][0] = -INF for i in 1..<k: for j in 0..<n: if dp[i - 1][j] == -INF: continue dp[i - 1][j] += i * a[j] dp[i] = dp[i - 1].buildSlideMaximum(m) var ans = -INF for j in 0..<n: ans = max(ans, dp[k - 1][j] + k * a[j]) echo ans main()
Submission Info
Submission Time | |
---|---|
Task | A - Struck Out |
User | somq14 |
Language | Nim (0.13.0) |
Score | 0 |
Code Size | 3415 Byte |
Status | WA |
Exec Time | 2144 ms |
Memory | 604068 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: future [Processing] Hint: macros [Processing] Main.nim(60, 6) Hint: 'Main.addFirst(this: var Deque[addFirst.T], e: T)' is declared but not used [XDeclaredButNotUsed] Hint: [Link] Hint: operation successful (24615 lines compiled; 2.232 sec total; 24.245MB; Release Build) [SuccessX]
Judge Result
Set Name | Sample | subtask1 | subtask2 | subtask3 | All | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 100 | 0 / 200 | 0 / 300 | 0 / 100 | ||||||||||||||||||||||
Status |
|
|
|
|
|
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 | 508 KB |
subtask_1_2.txt | AC | 531 ms | 67696 KB |
subtask_1_3.txt | TLE | 2142 ms | 603976 KB |
subtask_1_4.txt | AC | 29 ms | 4604 KB |
subtask_1_5.txt | AC | 92 ms | 18336 KB |
subtask_1_6.txt | WA | 10 ms | 2300 KB |
subtask_1_7.txt | AC | 1751 ms | 302936 KB |
subtask_1_8.txt | TLE | 2142 ms | 604016 KB |
subtask_1_9.txt | WA | 31 ms | 5884 KB |
subtask_2_1.txt | AC | 2 ms | 764 KB |
subtask_2_2.txt | AC | 1 ms | 508 KB |
subtask_2_3.txt | AC | 2 ms | 636 KB |
subtask_2_4.txt | AC | 2 ms | 508 KB |
subtask_2_5.txt | WA | 1 ms | 380 KB |
subtask_2_6.txt | WA | 1 ms | 380 KB |
subtask_2_7.txt | AC | 2 ms | 764 KB |
subtask_2_8.txt | AC | 2 ms | 764 KB |
subtask_2_9.txt | AC | 2 ms | 636 KB |
subtask_3_1.txt | AC | 528 ms | 77164 KB |
subtask_3_2.txt | AC | 529 ms | 77128 KB |
subtask_3_3.txt | AC | 510 ms | 77088 KB |
subtask_3_4.txt | AC | 425 ms | 71140 KB |
subtask_3_5.txt | AC | 27 ms | 4604 KB |
subtask_3_6.txt | AC | 268 ms | 39764 KB |
subtask_3_7.txt | AC | 529 ms | 77052 KB |
subtask_3_8.txt | AC | 53 ms | 8956 KB |
subtask_3_9.txt | AC | 531 ms | 77052 KB |
subtask_4_1.txt | TLE | 2142 ms | 604028 KB |
subtask_4_10.txt | TLE | 2142 ms | 603972 KB |
subtask_4_11.txt | TLE | 2143 ms | 603972 KB |
subtask_4_12.txt | TLE | 2142 ms | 604032 KB |
subtask_4_13.txt | TLE | 2142 ms | 604068 KB |
subtask_4_2.txt | TLE | 2143 ms | 604024 KB |
subtask_4_3.txt | TLE | 2142 ms | 604016 KB |
subtask_4_4.txt | TLE | 2143 ms | 604068 KB |
subtask_4_5.txt | TLE | 2139 ms | 558460 KB |
subtask_4_6.txt | AC | 410 ms | 74732 KB |
subtask_4_7.txt | TLE | 2127 ms | 302920 KB |
subtask_4_8.txt | TLE | 2144 ms | 594324 KB |
subtask_4_9.txt | TLE | 2126 ms | 302944 KB |