提出 #68284296


ソースコード 拡げる

// Node.js 18.16.1
// 処理時間とメモリを意識し、Mapを用いたO(N)解法

const fs = require('fs');
const input = fs.readFileSync(0, 'utf8').trim().split(/\s+/).map(Number);

/**
 * @param {number} N - 配列の要素数
 * @param {number[]} arr - 整数配列 A1...AN
 * @returns {number} - 条件を満たす (i,j) の組数
 */
function countPairs(N, arr) {
    const freq = new Map(); // 値 -> 出現回数
    let count = 0; // 組数
    for (let i = 0; i < N; i++) {
        const val = arr[i];
        if (freq.has(val)) {
            // 過去の出現回数分だけ組が作れる
            count += freq.get(val);
            freq.set(val, freq.get(val) + 1);
        } else {
            freq.set(val, 1);
        }
    }
    return count;
}

const N = input[0];
const arr = input.slice(1);

const result = countPairs(N, arr);
console.log(result);

提出情報

提出日時
問題 B54 - Counting Same Values
ユーザ myoshizumi
言語 JavaScript (Node.js 18.16.1)
得点 1000
コード長 910 Byte
結果 AC
実行時間 97 ms
メモリ 65544 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 1000 / 1000
結果
AC × 1
AC × 8
セット名 テストケース
Sample sample_01
All max_01, max_02, random_01, random_02, random_03, random_04, random_05, sample_01
ケース名 結果 実行時間 メモリ
max_01 AC 97 ms 58020 KiB
max_02 AC 67 ms 58168 KiB
random_01 AC 41 ms 42844 KiB
random_02 AC 41 ms 42780 KiB
random_03 AC 41 ms 42804 KiB
random_04 AC 45 ms 45512 KiB
random_05 AC 78 ms 65544 KiB
sample_01 AC 41 ms 42756 KiB