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