cp-library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub rniya/cp-library

:heavy_check_mark: test/yosupo/static_range_inversions_query.test.cpp

Depends on

Code

#define PROBLEM "https://judge.yosupo.jp/problem/static_range_inversions_query"

#include <iostream>
#include "atcoder/fenwicktree"
#include "datastructure/Mo.hpp"

int main() {
    std::cin.tie(0);
    std::ios::sync_with_stdio(false);
    int N, Q;
    std::cin >> N >> Q;
    std::vector<int> A(N);
    for (int i = 0; i < N; i++) std::cin >> A[i];

    Mo mo(N);
    for (int i = 0; i < Q; i++) {
        int l, r;
        std::cin >> l >> r;
        mo.add(l, r);
    }

    std::vector<int> B = A;
    sort(B.begin(), B.end());
    B.erase(unique(B.begin(), B.end()), B.end());
    for (int i = 0; i < N; i++) A[i] = lower_bound(B.begin(), B.end(), A[i]) - B.begin();
    int n = B.size();
    atcoder::fenwick_tree<int> FT(n);
    std::vector<long long> ans(Q);
    long long inv = 0;
    int sum = 0;

    auto add_left = [&](int idx) {
        inv += FT.sum(0, A[idx]);
        sum++;
        FT.add(A[idx], 1);
    };
    auto add_right = [&](int idx) {
        inv += FT.sum(A[idx] + 1, n);
        sum++;
        FT.add(A[idx], 1);
    };
    auto del_left = [&](int idx) {
        inv -= FT.sum(0, A[idx]);
        sum--;
        FT.add(A[idx], -1);
    };
    auto del_right = [&](int idx) {
        inv -= FT.sum(A[idx] + 1, n);
        sum--;
        FT.add(A[idx], -1);
    };
    auto rem = [&](int idx) { ans[idx] = inv; };

    mo.run(add_left, add_right, del_left, del_right, rem);

    for (int i = 0; i < Q; i++) std::cout << ans[i] << '\n';
    return 0;
}
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
    bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
                   ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
    bundler.update(path)
    ~~~~~~~~~~~~~~^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 401, in update
    self.update(self._resolve(pathlib.Path(included), included_from=path))
                ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 260, in _resolve
    raise BundleErrorAt(path, -1, "no such header")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: atcoder/fenwicktree: line -1: no such header
Back to top page