Submission #65275571


Source Code Expand

Copy
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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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
AC × 2
AC × 57
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


2025-06-30 (Mon)
12:07:46 +09:00