結果
問題 | No.370 道路の掃除 |
ユーザー | むらため |
提出日時 | 2019-01-23 20:56:26 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 697 bytes |
コンパイル時間 | 2,505 ms |
コンパイル使用メモリ | 62,256 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 10:38:40 |
合計ジャッジ時間 | 3,733 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
ソースコード
import sequtils,algorithm template `min=`*(x,y) = x = min(x,y) proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" .} proc scan(): int = var minus = false while true: let k = getchar_unlocked() if k == '-' : minus = true elif k < '0' or k > '9': break else: result = 10 * result + k.ord - '0'.ord if minus: result *= -1 let n = scan() let m = scan() let D = newSeqWith(m,scan()).sorted(cmp) if m == 1: echo D[0].abs quit 0 var ans = int.high for x in 0..<m: let y = x + n - 1 if y >= m : break if D[y] <= 0: ans .min= -D[x] elif D[x] >= 0 : ans .min= D[y] else: ans .min= -D[x] + D[y] * 2 ans .min= -D[x] * 2 + D[y] echo ans