結果
問題 |
No.3268 As Seen in Toasters
|
ユーザー |
![]() |
提出日時 | 2025-09-12 23:50:56 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 166 ms / 2,000 ms |
コード長 | 1,271 bytes |
コンパイル時間 | 262 ms |
コンパイル使用メモリ | 82,536 KB |
実行使用メモリ | 111,420 KB |
最終ジャッジ日時 | 2025-09-12 23:51:06 |
合計ジャッジ時間 | 6,398 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
# from more_itertools import distinct_permutations from collections import defaultdict N = int(input()) A = list(map(int,input().split())) def naive(N,A): d = defaultdict(int) for i in range(N): d[sorted(A)[i]] = i ret = 10**18 ret_p = [] for p in distinct_permutations(A): ans = 0 for i in range(N-1): if(p[i] < 0 and p[i+1] < 0): ans += -p[i] - p[i+1] else: ans += abs(p[i] - p[i+1]) if(ret > ans): ret = ans ret_p = [p] elif(ret == ans): ret_p.append(p) print(ret) for i in ret_p: for j in i: print(d[j],end=" ") print() def solve(N,A): A.sort() ret = 10**18 use = [A[i] for i in range(1,N)] + [A[0]] tmp = 0 for i in range(N-1): if(use[i] < 0 and use[i+1] < 0): tmp += -use[i] - use[i+1] else: tmp += abs(use[i] - use[i+1]) ret = min(ret,tmp) use = [A[i] for i in range(N)] tmp = 0 for i in range(N-1): if(use[i] < 0 and use[i+1] < 0): tmp += -use[i] - use[i+1] else: tmp += abs(use[i] - use[i+1]) ret = min(ret,tmp) print(ret) #naive(N,A) solve(N,A)