結果
問題 | No.370 道路の掃除 |
ユーザー |
![]() |
提出日時 | 2016-05-14 00:05:06 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 894 bytes |
コンパイル時間 | 909 ms |
コンパイル使用メモリ | 110,976 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-12 03:29:18 |
合計ジャッジ時間 | 2,111 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
ソースコード
import std.stdio, std.conv, std.math, std.string, std.range, std.array, std.algorithm; void main() { auto buf = readln().strip().split().map!(to!int)().array(); immutable N = buf[0]; immutable M = buf[1]; int[] D = new int[](M); foreach(immutable int i; 0 .. M) { D[i] = readln().strip().to!int(); } D.sort(); int[] p; int[] n; n ~= 0; p ~= 0; foreach(d; D) { if(d < 0) { n ~= d; } else { p ~= d; } } n.sort!"a>b"(); int ans = int.max; foreach(i; 0..N+1) { if(p.length <= i) { break; } int j = N - i; if(n.length <= j) { continue; } //writeln(i, ", ", j); immutable tdisr = p[i] + p[i]-n[j]; immutable tdisl = -n[j] + p[i]-n[j]; //tdisr.writeln; //tdisl.writeln; ans = min(ans, tdisr, tdisl); } ans.writeln; }