Submission #10774518


Source Code Expand

def main():
  import sys
  b=sys.stdin.buffer
  input=b.readline
  n=int(input())
  d=[0]*n+[1<<c-97for c in input()[:n]]
  for i in range(n-1,0,-1):d[i]=d[i+i]|d[i-~i]
  r=[]
  add=r.append
  input()
  for q,a,b in zip(*[iter(b.read().split())]*3):
    i,s=int(a)+n-1,0
    if q<b'2':
      d[i]=1<<b[0]-97
      while i:
        i>>=1
        d[i]=d[i+i]|d[i-~i]
      continue
    j=int(b)+n
    while i<j:
      if i&1:
        s|=d[i]
        i+=1
      if j&1:
        j-=1
        s|=d[j]
      i>>=1
      j>>=1
    add(bin(s).count('1'))
  print(' '.join(map(str,r)))
main()

Submission Info

Submission Time
Task E - Simple String Queries
User c_r_5
Language Python (3.4.3)
Score 500
Code Size 613 Byte
Status AC
Exec Time 327 ms
Memory 44708 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 1
AC × 43
Set Name Test Cases
Sample 00-sample-00
All 00-sample-00, 01-handmade-00, 01-handmade-01, 01-handmade-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 01-handmade-06, 01-handmade-07, 01-handmade-08, 01-handmade-09, 01-handmade-10, 01-handmade-11, 02-small-00, 02-small-01, 02-small-02, 02-small-03, 02-small-04, 02-small-05, 02-small-06, 02-small-07, 02-small-08, 02-small-09, 02-small-10, 02-small-11, 02-small-12, 02-small-13, 02-small-14, 02-small-15, 02-small-16, 02-small-17, 02-small-18, 02-small-19, 03-large-00, 03-large-01, 03-large-02, 03-large-03, 03-large-04, 03-large-05, 03-large-06, 03-large-07, 03-large-08, 03-large-09
Case Name Status Exec Time Memory
00-sample-00 AC 17 ms 3064 KiB
01-handmade-00 AC 323 ms 44708 KiB
01-handmade-01 AC 17 ms 3064 KiB
01-handmade-02 AC 289 ms 37924 KiB
01-handmade-03 AC 286 ms 38880 KiB
01-handmade-04 AC 312 ms 38236 KiB
01-handmade-05 AC 251 ms 19496 KiB
01-handmade-06 AC 292 ms 38984 KiB
01-handmade-07 AC 299 ms 41460 KiB
01-handmade-08 AC 311 ms 19492 KiB
01-handmade-09 AC 327 ms 38208 KiB
01-handmade-10 AC 310 ms 19492 KiB
01-handmade-11 AC 309 ms 19496 KiB
02-small-00 AC 46 ms 4084 KiB
02-small-01 AC 59 ms 4616 KiB
02-small-02 AC 50 ms 4256 KiB
02-small-03 AC 61 ms 4592 KiB
02-small-04 AC 44 ms 4084 KiB
02-small-05 AC 42 ms 3956 KiB
02-small-06 AC 64 ms 4676 KiB
02-small-07 AC 46 ms 4084 KiB
02-small-08 AC 44 ms 3956 KiB
02-small-09 AC 48 ms 4212 KiB
02-small-10 AC 60 ms 4552 KiB
02-small-11 AC 45 ms 4084 KiB
02-small-12 AC 46 ms 4084 KiB
02-small-13 AC 54 ms 3956 KiB
02-small-14 AC 49 ms 4132 KiB
02-small-15 AC 52 ms 4388 KiB
02-small-16 AC 50 ms 4260 KiB
02-small-17 AC 45 ms 4084 KiB
02-small-18 AC 54 ms 4388 KiB
02-small-19 AC 49 ms 4104 KiB
03-large-00 AC 300 ms 38436 KiB
03-large-01 AC 295 ms 38436 KiB
03-large-02 AC 296 ms 38476 KiB
03-large-03 AC 290 ms 38328 KiB
03-large-04 AC 293 ms 38436 KiB
03-large-05 AC 292 ms 38352 KiB
03-large-06 AC 292 ms 38440 KiB
03-large-07 AC 291 ms 38348 KiB
03-large-08 AC 293 ms 38400 KiB
03-large-09 AC 293 ms 38452 KiB