結果
問題 | No.198 キャンディー・ボックス2 |
ユーザー | jp_ste |
提出日時 | 2020-04-26 23:51:25 |
言語 | JavaScript (node v21.7.1) |
結果 |
AC
|
実行時間 | 65 ms / 1,000 ms |
コード長 | 1,710 bytes |
コンパイル時間 | 36 ms |
コンパイル使用メモリ | 5,376 KB |
実行使用メモリ | 39,552 KB |
最終ジャッジ日時 | 2024-10-13 01:45:17 |
合計ジャッジ時間 | 2,858 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 57 ms
39,296 KB |
testcase_01 | AC | 59 ms
39,296 KB |
testcase_02 | AC | 60 ms
39,168 KB |
testcase_03 | AC | 64 ms
39,296 KB |
testcase_04 | AC | 65 ms
39,296 KB |
testcase_05 | AC | 65 ms
39,296 KB |
testcase_06 | AC | 65 ms
39,296 KB |
testcase_07 | AC | 59 ms
39,424 KB |
testcase_08 | AC | 60 ms
39,424 KB |
testcase_09 | AC | 58 ms
39,296 KB |
testcase_10 | AC | 60 ms
39,424 KB |
testcase_11 | AC | 59 ms
39,296 KB |
testcase_12 | AC | 60 ms
39,552 KB |
testcase_13 | AC | 62 ms
39,424 KB |
testcase_14 | AC | 62 ms
39,424 KB |
testcase_15 | AC | 63 ms
39,296 KB |
testcase_16 | AC | 63 ms
39,296 KB |
testcase_17 | AC | 61 ms
39,424 KB |
testcase_18 | AC | 61 ms
39,424 KB |
testcase_19 | AC | 62 ms
39,424 KB |
testcase_20 | AC | 62 ms
39,296 KB |
testcase_21 | AC | 61 ms
39,424 KB |
testcase_22 | AC | 61 ms
39,424 KB |
testcase_23 | AC | 58 ms
39,424 KB |
testcase_24 | AC | 61 ms
39,296 KB |
testcase_25 | AC | 61 ms
39,296 KB |
testcase_26 | AC | 61 ms
39,296 KB |
testcase_27 | AC | 62 ms
39,424 KB |
testcase_28 | AC | 63 ms
39,424 KB |
testcase_29 | AC | 61 ms
39,296 KB |
ソースコード
function main(input) { let [b] = getIntegers(input); let [n] = getIntegers(input); let c = input.map(x => Number(x)); let low = 0; let high = Math.floor(c.reduce((a, b) => a + b, b) / n); while (high - low > 2) { let c1 = Math.floor((low * 2 + high) / 3); let c2 = Math.floor((low + high * 2) / 3); if (solve(c1, c) > solve(c2, c)) { low = c1; } else { high = c2; } } let min = Number.MAX_SAFE_INTEGER; for(let i=low; i<=high; i++) { min = Math.min(min, solve(i, c)); } console.log(min); } function solve(v, c) { let num = 0; for(let i=0; i<c.length; i++) { num += (Math.abs(v - c[i])); } return num; } //-- functions ------------------------------------ function getIntegers(lines) { return lines.shift().split(" ").map(function(e) { return Number(e); }); } function getStrings(lines) { return lines.shift().split(" "); } function twoDimensionalArray(h, w, value) { const list = new Array(h); for(let i=0; i<h; i++) { list[i] = new Array(w).fill().map(function(e) { return value.constructor == Array ? Array.from(value) : value; }); } return list; } //-- Array ------------------------------------------- Array.prototype.pushNoSameValue = function(...values) { values.forEach(function(e) { if(!this.includes(e)) { this.push(e); } }, this); }; Array.prototype.sortByIntegers = function() { this.sort(function(a, b) { return a - b; }); }; Array.prototype.oneLineString = function() { let str = ""; this.forEach(function(e, i) { if(i > 0) str += " "; str += e; }); return str; }; main(require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n"));