Submission #29835850
Source Code Expand
s = input()
t = input()
dp = [[0] * (len(t) + 1) for i in range(len(s) + 1)]
prev = [[(-10, -10)] * (len(t) + 1) for i in range(len(s) + 1)]
dp[0][0] = 0
for i in range(len(s)):
for j in range(len(t)):
if dp[i + 1][j + 1] < dp[i + 1][j]:
dp[i + 1][j + 1] = dp[i + 1][j]
prev[i + 1][j + 1] = (i + 1, j)
if dp[i + 1][j + 1] < dp[i][j + 1]:
dp[i + 1][j + 1] = dp[i][j + 1]
prev[i + 1][j + 1] = (i, j + 1)
if s[i] == t[j] and dp[i + 1][j + 1] < dp[i][j] + 1:
dp[i + 1][j + 1] = dp[i][j] + 1
prev[i + 1][j + 1] = (i, j)
answer = ""
i, j = len(s), len(t)
while (i, j) != (-10, -10):
if prev[i][j] == (i - 1, j - 1):
answer = s[i - 1] + answer
i, j = prev[i][j]
print(answer)
Submission Info
| Submission Time | |
|---|---|
| Task | F - LCS |
| User | Pro_ktmr |
| Language | PyPy3 (7.3.0) |
| Score | 100 |
| Code Size | 806 Byte |
| Status | AC |
| Exec Time | 860 ms |
| Memory | 427548 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 61 ms | 62176 KiB |
| 0_01 | AC | 48 ms | 62196 KiB |
| 0_02 | AC | 48 ms | 62144 KiB |
| 0_03 | AC | 53 ms | 62028 KiB |
| 1_00 | AC | 49 ms | 62160 KiB |
| 1_01 | AC | 49 ms | 62108 KiB |
| 1_02 | AC | 815 ms | 427548 KiB |
| 1_03 | AC | 293 ms | 214936 KiB |
| 1_04 | AC | 304 ms | 215476 KiB |
| 1_05 | AC | 292 ms | 215236 KiB |
| 1_06 | AC | 800 ms | 426828 KiB |
| 1_07 | AC | 860 ms | 424048 KiB |
| 1_08 | AC | 835 ms | 419248 KiB |
| 1_09 | AC | 845 ms | 424352 KiB |
| 1_10 | AC | 794 ms | 417260 KiB |
| 1_11 | AC | 786 ms | 419036 KiB |
| 1_12 | AC | 750 ms | 409584 KiB |
| 1_13 | AC | 757 ms | 425336 KiB |