Submission #1799538
Source Code Expand
from collections import deque base = ord('a') root = [None]*30 root[-2] = 0; root[-3] = 0 def add(s): node = root for c in s: code = ord(c) - base child = node[code] if not child: node[code] = child = [None]*30 child[-2] = node[-2] + 1 child[-3] = 0 node = child node[-3] = 1 def suffix(): que = deque([root]) while que: v = que.popleft() for i in range(26): if not v[i]: if v[-1]: v[i] = v[-1][i] else: v[i] = root[i] or root continue if v[-1]: v[i][-1] = v[-1][i] else: v[i][-1] = root que.append(v[i]) root[-1] = root ls = set() vs = [] N = int(input()) for i in range(N): s = input() add(s) ls.add(len(s)) suffix() t = input() tl = len(t) MOD = 10**9 + 7 dp = [0]*(tl + 1) dp[0] = 1 for l in ls: vs.append(l) *rng, = range(len(vs)) srcs = [root] * len(ls) for i in range(tl): code = ord(t[i]) - base for j in rng: l = vs[j] current = srcs[j] = srcs[j][code] if current[-2] == l: if current[-3]: dp[i+1] += dp[i-l+1] dp[i+1] %= MOD srcs[j] = current[-1] print(dp[tl])
Submission Info
Submission Time | |
---|---|
Task | H - Separate String |
User | yaketake08 |
Language | PyPy3 (2.4.0) |
Score | 0 |
Code Size | 1419 Byte |
Status | TLE |
Exec Time | 2106 ms |
Memory | 114780 KB |
Judge Result
Set Name | All | ||||
---|---|---|---|---|---|
Score / Max Score | 0 / 100 | ||||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 10_rand_00, 10_rand_01, 10_rand_02, 10_rand_03, 10_rand_04, 11_rand_00, 11_rand_01, 11_rand_02, 11_rand_03, 11_rand_04, 20_fixed_length_00, 20_fixed_length_01, 20_fixed_length_02, 21_fixed_length_00, 21_fixed_length_01, 21_fixed_length_02, 22_fixed_length_00, 22_fixed_length_01, 22_fixed_length_02, 23_fixed_length_00, 23_fixed_length_01, 23_fixed_length_02, 24_fixed_length_00, 24_fixed_length_01, 24_fixed_length_02, 30_mixed_length_00, 30_mixed_length_01, 30_mixed_length_02, 30_mixed_length_03, 30_mixed_length_04, 90_challenge_00, 90_challenge_01, 90_challenge_02, 90_challenge_03, 90_challenge_04, 90_challenge_05 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00 | AC | 175 ms | 38640 KB |
00_sample_01 | AC | 168 ms | 38256 KB |
00_sample_02 | AC | 172 ms | 38256 KB |
00_sample_03 | AC | 176 ms | 38256 KB |
10_rand_00 | AC | 502 ms | 95704 KB |
10_rand_01 | AC | 535 ms | 101596 KB |
10_rand_02 | AC | 629 ms | 97624 KB |
10_rand_03 | AC | 585 ms | 108252 KB |
10_rand_04 | AC | 456 ms | 78556 KB |
11_rand_00 | AC | 619 ms | 114776 KB |
11_rand_01 | AC | 638 ms | 113240 KB |
11_rand_02 | AC | 618 ms | 114780 KB |
11_rand_03 | AC | 674 ms | 112216 KB |
11_rand_04 | AC | 615 ms | 110808 KB |
20_fixed_length_00 | AC | 552 ms | 99416 KB |
20_fixed_length_01 | AC | 583 ms | 98776 KB |
20_fixed_length_02 | AC | 583 ms | 98776 KB |
21_fixed_length_00 | AC | 372 ms | 111708 KB |
21_fixed_length_01 | AC | 376 ms | 111708 KB |
21_fixed_length_02 | AC | 374 ms | 111708 KB |
22_fixed_length_00 | AC | 529 ms | 113240 KB |
22_fixed_length_01 | AC | 511 ms | 113240 KB |
22_fixed_length_02 | AC | 511 ms | 113240 KB |
23_fixed_length_00 | AC | 439 ms | 110940 KB |
23_fixed_length_01 | AC | 448 ms | 110940 KB |
23_fixed_length_02 | AC | 443 ms | 110940 KB |
24_fixed_length_00 | AC | 395 ms | 110172 KB |
24_fixed_length_01 | AC | 399 ms | 110172 KB |
24_fixed_length_02 | AC | 403 ms | 110172 KB |
30_mixed_length_00 | AC | 468 ms | 111452 KB |
30_mixed_length_01 | AC | 457 ms | 111452 KB |
30_mixed_length_02 | AC | 455 ms | 111452 KB |
30_mixed_length_03 | AC | 460 ms | 111452 KB |
30_mixed_length_04 | AC | 460 ms | 111452 KB |
90_challenge_00 | AC | 319 ms | 47852 KB |
90_challenge_01 | TLE | 2106 ms | 44012 KB |
90_challenge_02 | AC | 300 ms | 47980 KB |
90_challenge_03 | TLE | 2106 ms | 44140 KB |
90_challenge_04 | AC | 367 ms | 53720 KB |
90_challenge_05 | AC | 182 ms | 38768 KB |