結果

問題 No.3268 As Seen in Toasters
ユーザー detteiuu
提出日時 2025-09-12 21:59:28
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 197 ms / 2,000 ms
コード長 641 bytes
コンパイル時間 477 ms
コンパイル使用メモリ 82,256 KB
実行使用メモリ 127,292 KB
最終ジャッジ日時 2025-09-12 23:38:47
合計ジャッジ時間 6,595 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
A = list(map(int, input().split()))

def func(x, y):
    if x < 0 and y < 0:
        return -x-y
    else:
        return abs(x-y)

plus = []
minus = []
for a in A:
    if 0 <= a:
        plus.append(a)
    else:
        minus.append(a)
plus.sort()
minus.sort()

B = None
if len(minus) == 0:
    B = plus[:]
elif len(minus) == 1:
    B = minus[:]+plus[:]
else:
    a, b = minus[:]+plus[:], [minus[0]]+minus[2:]+plus[:]+[minus[1]]
    if sum(func(a[i], a[i+1]) for i in range(N-1)) <= sum(func(b[i], b[i+1]) for i in range(N-1)):
        B = a[:]
    else:
        B = b[:]

print(sum(func(B[i], B[i+1]) for i in range(N-1)))
0