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
AC × 4
AC × 23
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