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