Submission #70986192


Source Code Expand

import sys
input = sys.stdin.readline

MAXV = 500000

class Fw:
  def __init__(self, n):
    self.n = n
    self.b = [0]*(n+1)
  def add(self, i, x):
    while i <= self.n:
      self.b[i] += x
      i += i & -i
  def sum(self, i):
    s = 0
    while i > 0:
      s += self.b[i]
      i -= i & -i
    return s

fwc = Fw(MAXV+2)
fws = Fw(MAXV+2)

def pc(v):
  if v < 0: return 0
  if v > MAXV: v = MAXV
  return fwc.sum(v+1)

def ps(v):
  if v < 0: return 0
  if v > MAXV: v = MAXV
  return fws.sum(v+1)

n, q = map(int, input().split())
a = list(map(int, input().split()))

for v in a:
  fwc.add(v+1, 1)
  fws.add(v+1, v)

ans = []

for _ in range(q):
  t, *z = map(int, input().split())
  if t == 1:
    x, y = z
    x -= 1
    o = a[x]
    if o != y:
      fwc.add(o+1, -1)
      fws.add(o+1, -o)
      fwc.add(y+1, 1)
      fws.add(y+1, y)
      a[x] = y
  else:
    l, r = z
    if l > r:
      ans.append(str(l*n))
      continue
    c1 = pc(l-1)
    c2 = pc(r)
    c3 = n - c2
    sb = ps(r) - ps(l-1)
    v = l*c1 + sb + r*c3
    ans.append(str(v))

print("\n".join(ans))

Submission Info

Submission Time
Task E - Clamp
User uparupaaa
Language Python (PyPy 3.11-v7.3.20)
Score 450
Code Size 1147 Byte
Status AC
Exec Time 353 ms
Memory 188612 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 2
AC × 21
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 02_handmade_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 54 ms 87912 KiB
00_sample_01.txt AC 54 ms 87888 KiB
01_random_00.txt AC 220 ms 168008 KiB
01_random_01.txt AC 306 ms 188328 KiB
01_random_02.txt AC 244 ms 159416 KiB
01_random_03.txt AC 174 ms 129644 KiB
01_random_04.txt AC 347 ms 172400 KiB
01_random_05.txt AC 320 ms 188544 KiB
01_random_06.txt AC 352 ms 188588 KiB
01_random_07.txt AC 353 ms 188612 KiB
01_random_08.txt AC 339 ms 188464 KiB
01_random_09.txt AC 333 ms 188276 KiB
01_random_10.txt AC 344 ms 188032 KiB
01_random_11.txt AC 337 ms 188544 KiB
01_random_12.txt AC 332 ms 188364 KiB
01_random_13.txt AC 322 ms 188572 KiB
01_random_14.txt AC 329 ms 188208 KiB
01_random_15.txt AC 319 ms 188568 KiB
01_random_16.txt AC 55 ms 87836 KiB
01_random_17.txt AC 173 ms 126496 KiB
02_handmade_00.txt AC 224 ms 188408 KiB