Submission #75819743
Source Code Expand
import sys
input = sys.stdin.readline
n,q = map(int,input().split())
s = list(input().rstrip())
L,M = [],[0]
idx = 0
cur = s[0]
com = 1
for i in range(1,n):
if s[i] == cur: com += 1
else:
L.append([idx,idx+com-1,cur])
idx = i
cur = s[i]
com = 1
M.append(len(L))
L.append([idx,idx+com-1,cur])
S = [0]
for i in range(len(L)):
st,e,a = L[i]
c = (e-st+1)//2
if a == 'X': c = 0
S.append(S[i]+c)
for _ in range(q):
l,r = map(int,input().split())
a,b = M[l-1],M[r-1]
if a == b:
if s[l-1] == 'X': print(0)
else: print((r-l+1)//2)
else:
ans = 0
if s[l-1] != 'X': ans += (L[a][1]-l+2)//2
if s[r-1] != 'X': ans += (r-L[b][0])//2
print(ans+S[b]-S[a+1])
Submission Info
| Submission Time | |
|---|---|
| Task | D - Coloring |
| User | Cenix820 |
| Language | Python (PyPy 3.11-v7.3.20) |
| Score | 100 |
| Code Size | 803 Byte |
| Status | AC |
| Exec Time | 704 ms |
| Memory | 226512 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-001.txt |
| All | 00-sample-001.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-001.txt | AC | 55 ms | 79444 KiB |
| 01-001.txt | AC | 665 ms | 202348 KiB |
| 01-002.txt | AC | 663 ms | 202956 KiB |
| 01-003.txt | AC | 682 ms | 202052 KiB |
| 01-004.txt | AC | 673 ms | 202384 KiB |
| 01-005.txt | AC | 675 ms | 202320 KiB |
| 01-006.txt | AC | 694 ms | 202188 KiB |
| 01-007.txt | AC | 679 ms | 202772 KiB |
| 01-008.txt | AC | 683 ms | 202532 KiB |
| 01-009.txt | AC | 680 ms | 202208 KiB |
| 01-010.txt | AC | 678 ms | 202408 KiB |
| 01-011.txt | AC | 685 ms | 202480 KiB |
| 01-012.txt | AC | 674 ms | 202064 KiB |
| 01-013.txt | AC | 686 ms | 202196 KiB |
| 01-014.txt | AC | 704 ms | 202396 KiB |
| 01-015.txt | AC | 668 ms | 202044 KiB |
| 01-016.txt | AC | 420 ms | 143632 KiB |
| 01-017.txt | AC | 417 ms | 143648 KiB |
| 01-018.txt | AC | 415 ms | 143632 KiB |
| 01-019.txt | AC | 409 ms | 143400 KiB |
| 01-020.txt | AC | 664 ms | 226140 KiB |
| 01-021.txt | AC | 663 ms | 226204 KiB |
| 01-022.txt | AC | 672 ms | 226512 KiB |
| 01-023.txt | AC | 587 ms | 178776 KiB |
| 01-024.txt | AC | 552 ms | 159340 KiB |
| 01-025.txt | AC | 464 ms | 143844 KiB |
| 01-026.txt | AC | 467 ms | 143908 KiB |
| 01-027.txt | AC | 454 ms | 143848 KiB |
| 01-028.txt | AC | 448 ms | 143652 KiB |
| 01-029.txt | AC | 458 ms | 143512 KiB |
| 01-030.txt | AC | 474 ms | 143752 KiB |
| 01-031.txt | AC | 471 ms | 144032 KiB |
| 01-032.txt | AC | 508 ms | 143728 KiB |
| 01-033.txt | AC | 437 ms | 143352 KiB |
| 01-034.txt | AC | 529 ms | 170848 KiB |
| 01-035.txt | AC | 536 ms | 180756 KiB |
| 01-036.txt | AC | 542 ms | 180732 KiB |
| 01-037.txt | AC | 471 ms | 143828 KiB |
| 01-038.txt | AC | 56 ms | 79840 KiB |
| 01-039.txt | AC | 56 ms | 79712 KiB |
| 01-040.txt | AC | 56 ms | 79600 KiB |
| 01-041.txt | AC | 56 ms | 79604 KiB |
| 01-042.txt | AC | 56 ms | 79900 KiB |
| 01-043.txt | AC | 56 ms | 79732 KiB |