結果
問題 | No.3015 右に寄せろ! |
ユーザー |
|
提出日時 | 2025-01-25 13:39:47 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 857 bytes |
コンパイル時間 | 443 ms |
コンパイル使用メモリ | 82,408 KB |
実行使用メモリ | 430,544 KB |
最終ジャッジ日時 | 2025-01-25 22:55:20 |
合計ジャッジ時間 | 33,509 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 TLE * 8 |
ソースコード
def run_length_encoding(string):rl=[["",0]]for i in range(len(string)):if string[i]==rl[-1][0]:rl[-1][1]+=1else:rl.append([string[i],1])return rl[1:]def run_length_decoding(string):st=""for i in string:st=st+(i[0]*i[1])return stS=input()#与えられた情報から、最終的な状態を構築するL=run_length_encoding(S)+[["1",0],["1",0]]for i in range(len(L)-2):if L[i][0]=="1":#偶数個あったらif L[i][1]%2==0:L[i+2][1]+=L[i][1]L[i][1]=0#奇数個あったらelse:L[i+2][1]+=L[i][1]-1L[i][1]=1D=run_length_decoding(L)#あとは差分を計算def f(S):a=0for i in range(len(S)):if S[i]=="1":a+=ireturn aprint((f(D)-f(S))//2)