提出 #67556854


ソースコード 拡げる

const readline = require('readline')

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})
const lines = []
rl.on('line', (input) => {
    lines.push(input);
})
rl.on('close', () => {
// (function() {
    // const lines = require('fs').readFileSync('/dev/stdin', 'utf8').split('\n')
    let l = 0;
    let t = 1
    // t = +lines[l++]
    const output = []
    for (let i = 0; i < t; i++) {
        const a = +lines[l++]
        const n = +lines[l++]
        output[i] = solve(a, n)
    }
    console.log(output.join('\n'))
// })()
})

function solve(a, n) {
    let k = 0, v, b = 10
    let stopEven
    const cache = new Set()
    for (let i = 1; i < 1e6; i++) {
        const s = get(i, b)
        v = i
        for (let j = s.length - 2; j >= 0; j--) {
            v = v * b + s[j]
        }
        if (v <= n) {
            cache.add(v)
        } else {
            break
        }

        if (stopEven) continue
        v = i
        for (let j = s.length - 1; j >= 0; j--) {
            v = v * b + s[j]
        }
        if (v <= n) {
            cache.add(v)
        } else {
            stopEven = 1
        }
    }
    b = a, stopEven = 0
    for (let i = 1; i < 1600000; i++) {
        const s = get(i, b)
        v = i
        for (let j = s.length - 2; j >= 0; j--) {
            v = v * b + s[j]
        }
        if (v <= n) {
            if (cache.has(v)) k += v
        } else {
            break
        }

        if (stopEven) continue
        v = i
        for (let j = s.length - 1; j >= 0; j--) {
            v = v * b + s[j]
        }
        if (v <= n) {
            if (cache.has(v)) k += v
        } else {
            stopEven = 1
        }
    }
    return k
}
function val(o, b) {
    let r = 0
    for (let i = 0; i < o.length; i++) {
    // for (let i = o.length - 1; i >= 0; i--) {
        r = r * b + o[i]
    }
    return r
}
function get(x, b) {
    const o = []
    while (x > 0) {
        o.unshift(x % b)
        x = Math.floor(x / b)
    }
    return o
}
function isp(s) {
    for (let i = 0; i < s.length; i++) {
        if (s[i] !== s[s.length - 1 - i]) return 0
    }
    return 1
}

提出情報

提出日時
問題 C - Palindromic in Both Bases
ユーザ chinesedfan
言語 JavaScript (Node.js 18.16.1)
得点 350
コード長 2272 Byte
結果 AC
実行時間 2434 ms
メモリ 158680 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 350 / 350
結果
AC × 3
AC × 33
セット名 テストケース
Sample 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt
All 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt
ケース名 結果 実行時間 メモリ
00-sample-01.txt AC 40 ms 42916 KiB
00-sample-02.txt AC 2154 ms 158244 KiB
00-sample-03.txt AC 2107 ms 158256 KiB
01-01.txt AC 38 ms 42860 KiB
01-02.txt AC 39 ms 42932 KiB
01-03.txt AC 2434 ms 158564 KiB
01-04.txt AC 1791 ms 158340 KiB
01-05.txt AC 1992 ms 158248 KiB
01-06.txt AC 2056 ms 158120 KiB
01-07.txt AC 1851 ms 158516 KiB
01-08.txt AC 1889 ms 158240 KiB
01-09.txt AC 2217 ms 158244 KiB
01-10.txt AC 1959 ms 158680 KiB
01-11.txt AC 38 ms 42844 KiB
01-12.txt AC 102 ms 53388 KiB
01-13.txt AC 37 ms 42860 KiB
01-14.txt AC 100 ms 53544 KiB
01-15.txt AC 37 ms 42964 KiB
01-16.txt AC 53 ms 48856 KiB
01-17.txt AC 37 ms 42888 KiB
01-18.txt AC 51 ms 48944 KiB
01-19.txt AC 2290 ms 158552 KiB
01-20.txt AC 40 ms 47100 KiB
01-21.txt AC 45 ms 48408 KiB
01-22.txt AC 38 ms 43008 KiB
01-23.txt AC 40 ms 47092 KiB
01-24.txt AC 41 ms 47040 KiB
01-25.txt AC 48 ms 48116 KiB
01-26.txt AC 47 ms 48120 KiB
01-27.txt AC 92 ms 53540 KiB
01-28.txt AC 39 ms 42940 KiB
01-29.txt AC 39 ms 42936 KiB
01-30.txt AC 38 ms 42940 KiB