結果

問題 No.1604 Swap Sort:ONE
ユーザー irumo8202irumo8202
提出日時 2022-02-13 12:00:40
言語 TypeScript
(5.4.3)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,053 bytes
コンパイル時間 4,642 ms
コンパイル使用メモリ 144,852 KB
最終ジャッジ日時 2024-11-15 05:22:36
合計ジャッジ時間 5,399 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.ts(1,21): error TS2307: Cannot find module 'fs' or its corresponding type declarations.

ソースコード

diff #

import * as fs from "fs"

class BinaryIndexedTree {
    data: number[]
    size: number
    constructor(size: number) {
        this.size = size
        this.data = Array(size).fill(0)
    }
    public add(p: number, x: number): void {
        p++;
        while (p <= this.size) {
            this.data[p - 1] += x;
            p += p & -p
        }
    }

    public range_sum(l: number, r: number): number {
        return this.sum(r) - this.sum(l)
    }

    private sum(p: number): number {
        let res = 0
        while (p > 0) {
            res += this.data[p - 1]
            p -= p & -p
        }
        return res
    }
}

type Input = (args: string) => void

const main: Input = args => {
    const input = args.trim().split("\n");
    const n = +input.shift()
    const p = input.shift().split(" ").map(x => +x)
    const bit = new BinaryIndexedTree(n + 1);

    let ans = 0
    p.forEach(x => {
        ans += bit.range_sum(x + 1, n + 1)
        bit.add(x, 1)
    })
    console.log(ans)
}

main(fs.readFileSync('/dev/stdin', 'utf8'));
0