Submission #65275571
Source Code Expand
Copy
class TrieNode:__slots__ = ('next','terminal','sub_cnt')def __init__(self):self.next = {}self.terminal=Falseself.sub_cnt=0X_root=TrieNode()Y_root=TrieNode()total=0def insert_X(s):node = X_rootfor c in s:node=node.next.setdefault(c, TrieNode())node.terminal=Truepath = []u = Y_rootfor c in s:if c not in u.next:return
class TrieNode:
__slots__ = ('next','terminal','sub_cnt')
def __init__(self):
self.next = {}
self.terminal=False
self.sub_cnt=0
X_root=TrieNode()
Y_root=TrieNode()
total=0
def insert_X(s):
node = X_root
for c in s:
node=node.next.setdefault(c, TrieNode())
node.terminal=True
path = []
u = Y_root
for c in s:
if c not in u.next:
return
path.append((u,c))
u = u.next[c]
k = u.sub_cnt
if k == 0:
return
global total
total-=k
for (parent, ch) in path:
parent.sub_cnt-=k
parent,ch=path[-1]
del parent.next[ch]
def insert_Y(s):
node = X_root
for c in s:
if node.terminal:
return
if c not in node.next:
break
node = node.next[c]
if node.terminal:
return
u=Y_root
u.sub_cnt += 1
for c in s:
u = u.next.setdefault(c, TrieNode())
u.sub_cnt+=1
global total
total+=1
Q=int(input())
for _ in range(Q):
t, s = input().split()
t=int(t)
if t == 1:
insert_X(s)
else:
insert_Y(s)
print(total)
Submission Info
| Submission Time | |
|---|---|
| Task | E - Forbidden Prefix |
| User | kotafuku |
| Language | Python (PyPy 3.10-v7.3.12) |
| Score | 500 |
| Code Size | 1229 Byte |
| Status | AC |
| Exec Time | 578 ms |
| Memory | 341172 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_01.txt, 00_sample_02.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, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt, 02_handmade_06.txt, 02_handmade_07.txt, 02_handmade_08.txt, 02_handmade_09.txt, 02_handmade_10.txt, 02_handmade_11.txt, 02_handmade_12.txt, 02_handmade_13.txt, 02_handmade_14.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 61 ms | 76316 KiB |
| 00_sample_02.txt | AC | 63 ms | 76312 KiB |
| 01_random_01.txt | AC | 268 ms | 294092 KiB |
| 01_random_02.txt | AC | 262 ms | 289432 KiB |
| 01_random_03.txt | AC | 259 ms | 292932 KiB |
| 01_random_04.txt | AC | 260 ms | 292148 KiB |
| 01_random_05.txt | AC | 269 ms | 289096 KiB |
| 01_random_06.txt | AC | 260 ms | 294496 KiB |
| 01_random_07.txt | AC | 289 ms | 303972 KiB |
| 01_random_08.txt | AC | 296 ms | 293044 KiB |
| 01_random_09.txt | AC | 289 ms | 255536 KiB |
| 01_random_10.txt | AC | 281 ms | 256808 KiB |
| 01_random_11.txt | AC | 297 ms | 295856 KiB |
| 01_random_12.txt | AC | 288 ms | 298164 KiB |
| 01_random_13.txt | AC | 290 ms | 297456 KiB |
| 01_random_14.txt | AC | 438 ms | 92904 KiB |
| 01_random_15.txt | AC | 463 ms | 100272 KiB |
| 01_random_16.txt | AC | 494 ms | 104820 KiB |
| 01_random_17.txt | AC | 401 ms | 163372 KiB |
| 01_random_18.txt | AC | 523 ms | 115916 KiB |
| 01_random_19.txt | AC | 143 ms | 146912 KiB |
| 01_random_20.txt | AC | 134 ms | 151892 KiB |
| 01_random_21.txt | AC | 200 ms | 130028 KiB |
| 01_random_22.txt | AC | 275 ms | 270644 KiB |
| 01_random_23.txt | AC | 214 ms | 141404 KiB |
| 01_random_24.txt | AC | 421 ms | 95588 KiB |
| 01_random_25.txt | AC | 315 ms | 93016 KiB |
| 01_random_26.txt | AC | 336 ms | 94212 KiB |
| 01_random_27.txt | AC | 274 ms | 110172 KiB |
| 01_random_28.txt | AC | 413 ms | 95840 KiB |
| 01_random_29.txt | AC | 323 ms | 111348 KiB |
| 01_random_30.txt | AC | 350 ms | 94908 KiB |
| 01_random_31.txt | AC | 263 ms | 95120 KiB |
| 01_random_32.txt | AC | 294 ms | 89092 KiB |
| 01_random_33.txt | AC | 186 ms | 104556 KiB |
| 01_random_34.txt | AC | 395 ms | 96032 KiB |
| 01_random_35.txt | AC | 307 ms | 93704 KiB |
| 01_random_36.txt | AC | 316 ms | 92620 KiB |
| 01_random_37.txt | AC | 510 ms | 90560 KiB |
| 01_random_38.txt | AC | 578 ms | 121488 KiB |
| 01_random_39.txt | AC | 544 ms | 160244 KiB |
| 01_random_40.txt | AC | 512 ms | 189956 KiB |
| 01_random_41.txt | AC | 472 ms | 198084 KiB |
| 02_handmade_01.txt | AC | 262 ms | 298736 KiB |
| 02_handmade_02.txt | AC | 261 ms | 298348 KiB |
| 02_handmade_03.txt | AC | 413 ms | 83280 KiB |
| 02_handmade_04.txt | AC | 426 ms | 84328 KiB |
| 02_handmade_05.txt | AC | 144 ms | 83488 KiB |
| 02_handmade_06.txt | AC | 169 ms | 84228 KiB |
| 02_handmade_07.txt | AC | 112 ms | 83528 KiB |
| 02_handmade_08.txt | AC | 127 ms | 83780 KiB |
| 02_handmade_09.txt | AC | 95 ms | 83648 KiB |
| 02_handmade_10.txt | AC | 113 ms | 85472 KiB |
| 02_handmade_11.txt | AC | 105 ms | 94016 KiB |
| 02_handmade_12.txt | AC | 144 ms | 112060 KiB |
| 02_handmade_13.txt | AC | 184 ms | 199196 KiB |
| 02_handmade_14.txt | AC | 364 ms | 341172 KiB |