結果
| 問題 | No.198 キャンディー・ボックス2 |
| コンテスト | |
| ユーザー |
jp_ste
|
| 提出日時 | 2020-04-26 21:07:27 |
| 言語 | JavaScript (node v23.5.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,745 bytes |
| 記録 | |
| コンパイル時間 | 130 ms |
| コンパイル使用メモリ | 6,824 KB |
| 実行使用メモリ | 41,720 KB |
| 最終ジャッジ日時 | 2024-10-13 01:45:05 |
| 合計ジャッジ時間 | 2,951 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 2 |
| other | AC * 3 WA * 23 |
ソースコード
function main(input) {
let [b] = getIntegers(input);
let [n] = getIntegers(input);
let c = input.map(x => Number(x)).sort((a, b) => b - a);
let ans = 0;
if(n > 1) {
if(n % 2 == 1) {
const index = Math.round(n / 2) - 1;
ans = solve(c[index], b, c);
} else {
const index1 = Math.round(n / 2) - 1;
const index2 = Math.round(n / 2);
ans = Math.min(solve(c[index1], b, c), solve(c[index2], b, c));
}
}
console.log(ans);
}
function solve(v, b, c) {
let num = 0;
for(let i=0; i<c.length; i++) {
if(c[i] > v) {
b += (c[i] - v);
num += (c[i] - v);
} else if(c[i] < v) {
b -= (v - c[i]);
num += (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").split("\n"));
jp_ste