CP-Algorithms Library

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub cp-algorithms/cp-algorithms-aux

:heavy_check_mark: Dirichlet Convolution and Prefix Sums (verify/number_theory/dirichlet_mul.test.cpp)

Depends on

Code

// @brief Dirichlet Convolution and Prefix Sums
#define PROBLEM "https://judge.yosupo.jp/problem/dirichlet_convolution_and_prefix_sums"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include <iostream>
//#include "blazingio/blazingio.min.hpp"
#include "cp-algo/util/big_alloc.hpp"
#include "cp-algo/number_theory/modint.hpp"
#include "cp-algo/number_theory/dirichlet.hpp"
#include <bits/stdc++.h>

using namespace std;
using namespace cp_algo::math;
using base = modint<998244353>;

void solve() {
    int64_t n;
    cin >> n;
    auto [_, m] = floor_stats(n);
    cp_algo::big_vector<base> F(m+1), G(m+1);
    for (int i = 1; i <= m; ++i) {
        cin >> F[i];
    }
    for (int i = 1; i <= m; ++i) {
        cin >> G[i];
    }
    auto H = Dirichlet_mul(F, G, n);
    for (int i = 1; i <= m; ++i) {
        cout << H[i] << " \n"[i == m];
    }
}

signed main() {
    //freopen("input.txt", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
    cin >> t;
    while(t--) {
        solve();
    }
}
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/resolver.py", line 290, in resolve
    bundled_code = language.bundle(path, basedir=basedir)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/languages/cplusplus.py", line 243, in bundle
    bundler.update(path)
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/languages/cplusplus_bundle.py", line 322, in update
    assert len(lines) == len(uncommented_lines)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

Test cases

Env Name Status Elapsed Memory
g++ example_00 :heavy_check_mark: AC 3 ms 3 MB
g++ many_00 :heavy_check_mark: AC 283 ms 4 MB
g++ many_01 :heavy_check_mark: AC 290 ms 4 MB
g++ many_02 :heavy_check_mark: AC 288 ms 4 MB
g++ max_00 :heavy_check_mark: AC 4292 ms 26 MB
g++ max_01 :heavy_check_mark: AC 4271 ms 26 MB
g++ max_02 :heavy_check_mark: AC 4277 ms 27 MB
g++ max_03 :heavy_check_mark: AC 4260 ms 27 MB
g++ max_04 :heavy_check_mark: AC 4272 ms 26 MB
g++ random_00 :heavy_check_mark: AC 1614 ms 14 MB
g++ random_01 :heavy_check_mark: AC 2561 ms 19 MB
g++ random_02 :heavy_check_mark: AC 644 ms 9 MB
g++ random_03 :heavy_check_mark: AC 4092 ms 26 MB
g++ random_04 :heavy_check_mark: AC 3376 ms 23 MB
g++ small_00 :heavy_check_mark: AC 5 ms 4 MB
g++ small_01 :heavy_check_mark: AC 3 ms 4 MB
g++ small_02 :heavy_check_mark: AC 3 ms 4 MB
g++ small_03 :heavy_check_mark: AC 4 ms 4 MB
g++ small_04 :heavy_check_mark: AC 4 ms 3 MB
g++ very_small_00 :heavy_check_mark: AC 2 ms 4 MB
g++ very_small_01 :heavy_check_mark: AC 2 ms 3 MB
g++ very_small_02 :heavy_check_mark: AC 2 ms 3 MB
g++ very_small_03 :heavy_check_mark: AC 2 ms 3 MB
g++ very_small_04 :heavy_check_mark: AC 2 ms 3 MB
Back to top page