結果
問題 | No.1437 01 Sort |
ユーザー |
![]() |
提出日時 | 2021-01-20 23:58:32 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 755 bytes |
コンパイル時間 | 380 ms |
コンパイル使用メモリ | 82,576 KB |
実行使用メモリ | 264,216 KB |
最終ジャッジ日時 | 2024-09-19 01:12:56 |
合計ジャッジ時間 | 4,470 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 WA * 2 TLE * 1 -- * 13 |
ソースコード
# 計算量 O(N^3)n = int(input())s = input()co = s.count("1")ans = 10**15a = []for i in range(n):if s[i] == "1":a += [i, i+n, i+n+n, i+n+n+n]a.sort()for l in range(n):x = list(range(l+n, l+n+co))anss = (n-(l+co)) % nsp_l = (l+co) % nsp_r = (0 if sp_l == 0 else n)for ll in range(co+co+co):y = a[ll:ll+co]flag = 0le = 0ri = 0for i in range(co):if y[i] <= x[i]:if sp_l <= y[i] % n < sp_r:le = max(le, x[i]-y[i]-1)else:le = max(le, x[i]-y[i])else:if (sp_l <= y[i] % n <= sp_r) or (y[i] % n == 0):flag = 1if ri == 0:ri += 1ri += 1ri -= flagans = min(ans, anss+max(le, ri)*n)print(ans)