提出 #68093517
ソースコード 拡げる
const fs = require('fs');
/**
* 最大スコアを計算(全象限貪欲法)
* @param {number[][]} cards - 各カードの [Ai, Bi] の配列
* @returns {number} 最大スコア
*/
function maxScoreAccurate(cards) {
let maxScore = 0;
const signs = [
[1, 1],
[1, -1],
[-1, 1],
[-1, -1],
];
for (const [sa, sb] of signs) {
let sumA = 0, sumB = 0;
for (const [a, b] of cards) {
const va = sa * a;
const vb = sb * b;
if (va + vb > 0) {
sumA += a;
sumB += b;
}
}
const score = Math.abs(sumA) + Math.abs(sumB);
if (score > maxScore) maxScore = score;
}
return maxScore;
}
// --- 入力処理 ---
function main() {
const input = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');
const N = Number(input[0]);
const cards = input.slice(1).map(line => line.split(' ').map(Number));
const result = maxScoreAccurate(cards);
console.log(result);
}
main();
提出情報
| 提出日時 | |
|---|---|
| 問題 | B42 - Two Faced Cards |
| ユーザ | myoshizumi |
| 言語 | JavaScript (Node.js 18.16.1) |
| 得点 | 1000 |
| コード長 | 1106 Byte |
| 結果 | AC |
| 実行時間 | 183 ms |
| メモリ | 97936 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1000 / 1000 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt |
| All | hand_01.txt, hand_02.txt, random_large_00.txt, random_large_01.txt, random_large_02.txt, random_small_00.txt, random_small_01.txt, random_small_02.txt, random_small_03.txt, random_small_04.txt, sample_01.txt, test_01.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| hand_01.txt | AC | 47 ms | 42732 KiB |
| hand_02.txt | AC | 39 ms | 42624 KiB |
| random_large_00.txt | AC | 183 ms | 96740 KiB |
| random_large_01.txt | AC | 163 ms | 97412 KiB |
| random_large_02.txt | AC | 161 ms | 97936 KiB |
| random_small_00.txt | AC | 39 ms | 42804 KiB |
| random_small_01.txt | AC | 38 ms | 42840 KiB |
| random_small_02.txt | AC | 38 ms | 42756 KiB |
| random_small_03.txt | AC | 38 ms | 42844 KiB |
| random_small_04.txt | AC | 39 ms | 42844 KiB |
| sample_01.txt | AC | 39 ms | 42724 KiB |
| test_01.txt | AC | 136 ms | 78956 KiB |