結果
問題 | No.370 道路の掃除 |
ユーザー |
|
提出日時 | 2016-10-25 11:48:50 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 682 bytes |
コンパイル時間 | 49 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 6,400 KB |
最終ジャッジ日時 | 2024-11-24 03:33:00 |
合計ジャッジ時間 | 1,591 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
ソースコード
N, M = map(int, raw_input().split()) D = [int(raw_input()) for _ in xrange(M)] plus = sorted([d for d in D if d > 0]) minus = sorted([abs(d) for d in D if d < 0]) if 0 in D: N -= 1 if N == 0: print 0 exit() if len(plus) == 0: print minus[N-1] exit() if len(minus) == 0: print plus[N-1] exit() ans = float('inf') for i in xrange(len(plus)+1): for j in xrange(len(minus)+1): if i+j == N: if i == 0: ans = min(ans, minus[j-1]) elif j == 0: ans = min(ans, plus[i-1]) else: a, b = sorted([plus[i-1], minus[j-1]]) ans = min(ans, a*2+b) print ans