提出 #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
結果
AC × 1
AC × 12
セット名 テストケース
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