Submission #71259718
Source Code Expand
"""
<方針>
- 線形時間程度で収めることを考える。
- 連続する数字をブロックとして捉えて一旦まとめてみる。`O(N)`
- `1122` が `12` を包含するように、隣同士のブロックで作れる最長の長さが個数になりそう。
"""
# 入力
S = input()
# 番兵
S += "A"
# ブロックの文字を記録
chars = []
# ブロックの個数を記録
cnts = []
# 現在の文字
char = S[0]
# 現在連続している個数
cnt = 1
# 2個目以降をみる
for s in S[1:]:
# 文字が一致すれば
if(s == char):
# 個数を増やす
cnt += 1
# 一致しなければ、
else:
# 現在の文字と個数をブロック単位として登録する
chars.append(char)
cnts.append(cnt)
# 新しいのに変える
char = s
cnt = 1
# 個数計測
ans = 0
# 隣り合うところだけ見る
for i in range(len(chars)-1):
# 左の数字に1足したら右の数字になるとき、
if(int(chars[i])+1 == int(chars[i+1])):
# 作れる最大の長さが個数
ans += min(cnts[i], cnts[i+1])
# 出力
print(ans)
Submission Info
| Submission Time | |
|---|---|
| Task | C - 1122 Substring 2 |
| User | mattsunkun |
| Language | Python (PyPy 3.11-v7.3.20) |
| Score | 300 |
| Code Size | 1163 Byte |
| Status | AC |
| Exec Time | 177 ms |
| Memory | 237596 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_00.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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 53 ms | 79956 KiB |
| 00_sample_01.txt | AC | 52 ms | 80188 KiB |
| 00_sample_02.txt | AC | 52 ms | 79888 KiB |
| 00_sample_03.txt | AC | 52 ms | 79888 KiB |
| 01_random_00.txt | AC | 53 ms | 79916 KiB |
| 01_random_01.txt | AC | 73 ms | 111784 KiB |
| 01_random_02.txt | AC | 75 ms | 111600 KiB |
| 01_random_03.txt | AC | 78 ms | 111512 KiB |
| 01_random_04.txt | AC | 78 ms | 111964 KiB |
| 01_random_05.txt | AC | 77 ms | 111908 KiB |
| 01_random_06.txt | AC | 158 ms | 208588 KiB |
| 01_random_07.txt | AC | 173 ms | 227512 KiB |
| 01_random_08.txt | AC | 102 ms | 151248 KiB |
| 01_random_09.txt | AC | 148 ms | 182348 KiB |
| 01_random_10.txt | AC | 138 ms | 173580 KiB |
| 01_random_11.txt | AC | 140 ms | 175644 KiB |
| 01_random_12.txt | AC | 139 ms | 173088 KiB |
| 01_random_13.txt | AC | 93 ms | 123016 KiB |
| 01_random_14.txt | AC | 98 ms | 123084 KiB |
| 01_random_15.txt | AC | 172 ms | 224284 KiB |
| 01_random_16.txt | AC | 172 ms | 227612 KiB |
| 01_random_17.txt | AC | 131 ms | 173460 KiB |
| 01_random_18.txt | AC | 177 ms | 237596 KiB |