結果
問題 |
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)