結果

問題 No.370 道路の掃除
ユーザー cympfh
提出日時 2016-05-13 22:37:04
言語 Ruby
(3.4.1)
結果
WA  
実行時間 -
コード長 665 bytes
コンパイル時間 39 ms
コンパイル使用メモリ 7,296 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-10-05 16:55:32
合計ジャッジ時間 4,410 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 31 WA * 3
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

n,m=gets.chomp.split.map(&:to_i)
ds = m.times.map{ gets.to_i }

if n == 1
  p ds[0].abs
  exit 0
end

xs = ds.select{|x| x < 0 }.map{|x| -x}.sort
ys = ds.select{|x| x > 0 }.sort

if ds.select{|x| x == 0}.length > 0
  n -= 1
end

ans = 1e10

if xs.size >= n
  ans = [ans, xs[n-1]].min
end
if ys.size >= n
  ans = [ans, ys[n-1]].min
end

for k in 0..xs.size do
  if k < n and n-k-1 < ys.size
    d = (k == 0 ? 0 : xs[k-1]) * 2 + (n==k ? 0 : ys[n-k-1])
    ans = [ans, d].min
  end
end

xs,ys = ys,xs
# p [xs,ys]

for k in 0..xs.size do
  if k < n and n-k-1 < ys.size
    d = (k == 0 ? 0 : xs[k-1]) * 2 + (n==k ? 0 : ys[n-k-1])
    ans = [ans, d].min
  end
end

p ans
0