Submission #6413852


Source Code Expand

type BIT[T] = object
  data:seq[T]
  e:T
  f:proc (x,y:T):T
proc newBIT[T](n:int, e:T, f:proc(x,y:T):T):BIT[T] =
  BIT[T](data:newSeq[T](n+1), e:e, f:f)
proc `[]`[T](b:BIT[T], x:int):T = b.data[x]
proc `[]=`[T](b:var BIT[T], x:int, v:T) = b.data[x] = v
proc len[T](b:BIT[T]):int = len(b.data)
proc query[T](b:BIT[T], x:int):T =
  var x = x
  result = b.e
  while x>0:
    result = b.f(result, b[x])
    x -= x and -x
proc update[T](b:var BIT[T], x:int, m:T) =
  var x = x
  while x<len(b):
    b[x] = b.f(b[x], m)
    x += x and -x

##########

import sequtils, strutils, algorithm

proc abc038D() =
  var
    bit = newBit[int](100_000, 0, proc(x,y:int):int = max(x,y))
    whs = newSeq[(int, int)]()
  let n = stdin.readline.parseInt

  for _ in 1..n:
    let wh = stdin.readline.split.map(parseInt)
    whs.add((wh[0], wh[1]))
  whs.sort do(x,y:(int, int)) -> int:
    if x[0] == y[0]:  system.cmp[int](y[1], x[1])
    else:             system.cmp[int](x[0], y[0])

  for i,wh in whs:
    let (w, h) = wh
    bit.update(h, bit.query(h-1)+1)

  echo bit.query(100_000)

if isMainModule:
  abc038D()

Submission Info

Submission Time
Task D - プレゼント
User glia269
Language Nim (0.13.0)
Score 100
Code Size 1144 Byte
Status AC
Exec Time 83 ms
Memory 6120 KB

Compile Error

Hint: system [Processing]
Hint: Main [Processing]
Hint: sequtils [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: algorithm [Processing]
Main.nim(40, 10) Hint: 'w' is declared but not used [XDeclaredButNotUsed]
Hint:  [Link]
Hint: operation successful (13345 lines compiled; 1.935 sec total; 14.148MB; Release Build) [SuccessX]

Judge Result

Set Name Sample Subtask0 All
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 4
AC × 19
AC × 34
Set Name Test Cases
Sample sample0.txt, sample1.txt, sample2.txt, sample3.txt
Subtask0 subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, sample0.txt, sample1.txt, sample2.txt, sample3.txt
All sample0.txt, sample1.txt, sample2.txt, sample3.txt, subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt
Case Name Status Exec Time Memory
sample0.txt AC 1 ms 1024 KB
sample1.txt AC 1 ms 1024 KB
sample2.txt AC 1 ms 1024 KB
sample3.txt AC 1 ms 1024 KB
subtask0_0.txt AC 1 ms 1152 KB
subtask0_1.txt AC 1 ms 1024 KB
subtask0_10.txt AC 2 ms 1280 KB
subtask0_11.txt AC 2 ms 1280 KB
subtask0_12.txt AC 2 ms 1280 KB
subtask0_13.txt AC 2 ms 1280 KB
subtask0_14.txt AC 2 ms 1280 KB
subtask0_2.txt AC 1 ms 1024 KB
subtask0_3.txt AC 1 ms 1152 KB
subtask0_4.txt AC 2 ms 1280 KB
subtask0_5.txt AC 1 ms 1024 KB
subtask0_6.txt AC 2 ms 1280 KB
subtask0_7.txt AC 2 ms 1280 KB
subtask0_8.txt AC 2 ms 1280 KB
subtask0_9.txt AC 1 ms 1152 KB
subtask1_0.txt AC 46 ms 3328 KB
subtask1_1.txt AC 2 ms 1280 KB
subtask1_10.txt AC 60 ms 6120 KB
subtask1_11.txt AC 65 ms 5752 KB
subtask1_12.txt AC 77 ms 5624 KB
subtask1_13.txt AC 77 ms 5624 KB
subtask1_14.txt AC 83 ms 5624 KB
subtask1_2.txt AC 13 ms 1792 KB
subtask1_3.txt AC 65 ms 4992 KB
subtask1_4.txt AC 76 ms 5624 KB
subtask1_5.txt AC 11 ms 1792 KB
subtask1_6.txt AC 56 ms 4864 KB
subtask1_7.txt AC 31 ms 3584 KB
subtask1_8.txt AC 65 ms 4864 KB
subtask1_9.txt AC 34 ms 3328 KB