Submission #67625528


Source Code Expand

const fs = require("fs");

/**
 * 最長回文部分列の長さを返す関数
 * @param {string} S - 対象の文字列(英小文字)
 * @returns {number} - 最長の回文部分列の長さ
 */
function longestPalindromicSubsequence(S) {
    const N = S.length;
    const dp = Array.from({ length: N }, () => Array(N).fill(0));

    // 1文字は必ず回文
    for (let i = 0; i < N; i++) {
        dp[i][i] = 1;
    }

    // 長さ2以上の部分列に対するDP
    for (let len = 2; len <= N; len++) {
        for (let i = 0; i <= N - len; i++) {
            const j = i + len - 1;
            if (S[i] === S[j]) {
                dp[i][j] = (len === 2) ? 2 : dp[i + 1][j - 1] + 2;
            } else {
                dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);
            }
        }
    }

    return dp[0][N - 1];
}

// 入力読み取り
const input = fs.readFileSync("/dev/stdin", "utf8").trim().split("\n");
const N = Number(input[0]);
const S = input[1];

// 出力
console.log(longestPalindromicSubsequence(S));

Submission Info

Submission Time
Task B21 - Longest Subpalindrome
User myoshizumi
Language JavaScript (Node.js 18.16.1)
Score 1000
Code Size 1080 Byte
Status AC
Exec Time 77 ms
Memory 60920 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 2
AC × 25
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, sample_01.txt, sample_02.txt
Case Name Status Exec Time Memory
in01.txt AC 40 ms 42704 KiB
in02.txt AC 40 ms 42752 KiB
in03.txt AC 40 ms 42808 KiB
in04.txt AC 40 ms 42756 KiB
in05.txt AC 41 ms 42764 KiB
in06.txt AC 42 ms 42828 KiB
in07.txt AC 77 ms 47044 KiB
in08.txt AC 49 ms 49244 KiB
in09.txt AC 49 ms 49340 KiB
in10.txt AC 49 ms 49504 KiB
in11.txt AC 52 ms 51608 KiB
in12.txt AC 54 ms 52964 KiB
in13.txt AC 56 ms 53776 KiB
in14.txt AC 59 ms 57060 KiB
in15.txt AC 64 ms 60756 KiB
in16.txt AC 64 ms 60816 KiB
in17.txt AC 67 ms 60868 KiB
in18.txt AC 66 ms 60856 KiB
in19.txt AC 41 ms 42856 KiB
in20.txt AC 63 ms 60836 KiB
in21.txt AC 63 ms 60920 KiB
in22.txt AC 61 ms 60892 KiB
in23.txt AC 61 ms 60920 KiB
sample_01.txt AC 40 ms 42872 KiB
sample_02.txt AC 40 ms 42824 KiB