結果
| 問題 |
No.2029 Swap Min Max Min
|
| コンテスト | |
| ユーザー |
rlangevin
|
| 提出日時 | 2022-08-22 19:37:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 110 ms / 2,000 ms |
| コード長 | 663 bytes |
| コンパイル時間 | 293 ms |
| コンパイル使用メモリ | 82,448 KB |
| 実行使用メモリ | 116,032 KB |
| 最終ジャッジ日時 | 2024-10-10 06:41:10 |
| 合計ジャッジ時間 | 5,878 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 42 |
ソースコード
N = int(input())
A = list(map(int, input().split()))
D = []
for i in range(N):
if A[i] <= N//2:
D.append(i)
ans = 0
if N % 2:
E = list(range(1, N, 2))
for i in range(N//2):
ans += abs(D[i] - E[i])
else:
EL = list(range(0, N, 2))
ER = list(range(1, N, 2))
EL.reverse()
Left = [0] * (N//2 + 1)
Right = [0] * (N//2 + 1)
cntL, cntR = 0, 0
ans = 10 ** 18
for i in range(N//2):
cntL += abs(D[N//2 - i - 1] - EL[i])
cntR += abs(D[i] - ER[i])
Left[i + 1] = cntL
Right[i + 1] = cntR
for i in range(N//2 + 1):
ans = min(ans, Left[i] + Right[N//2 - i])
print(N//2, ans)
rlangevin