結果
| 問題 |
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