提出 #71259718


ソースコード 拡げる

"""
<方針>
- 線形時間程度で収めることを考える。
- 連続する数字をブロックとして捉えて一旦まとめてみる。`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)

提出情報

提出日時
問題 C - 1122 Substring 2
ユーザ mattsunkun
言語 Python (PyPy 3.11-v7.3.20)
得点 300
コード長 1163 Byte
結果 AC
実行時間 177 ms
メモリ 237596 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 4
AC × 23
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
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