結果
| 問題 |
No.3015 右に寄せろ!
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-01-25 18:35:52 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 304 ms / 2,000 ms |
| コード長 | 857 bytes |
| コンパイル時間 | 655 ms |
| コンパイル使用メモリ | 82,356 KB |
| 実行使用メモリ | 269,744 KB |
| 最終ジャッジ日時 | 2025-01-26 00:00:54 |
| 合計ジャッジ時間 | 4,537 ms |
|
ジャッジサーバーID (参考情報) |
judge12 / judge13 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
S = input()
#print(S)
ans = 0
S = list(S)
for i in range(len(S) - 1):
if S[i] == S[i + 1] == "1":
S = S[i:]
break
else:
print(0)
exit()
while S[-1] == "1":
S.pop()
if not len(S):
break
if len(S) == 0 or len(S) == 1:
print(0)
exit()
if len(set(S)) == 1:
print(0)
exit()
tmp = []
#print(S)
streak = 1
for i in range(1, len(S)):
if S[i] == S[i - 1]:
streak += 1
else:
tmp.append(streak)
streak = 1
tmp.append(streak)
A = []
B = []
for i in range(len(tmp)):
if i % 2 == 0:
A.append(tmp[i])
else:
B.append(tmp[i])
x = A[0]
if x % 2 == 1:
x -= 1
for i in range(len(A)):
if i != 0:
x += A[i]
if x % 2 == 1:
x -= 1
ans += (x // 2) * B[i]
print(ans)
#print(B)
#print(A)