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: Product of Polynomial Sequence (verify/poly/prod_sequence.test.cpp)

Depends on

Code

// @brief Product of Polynomial Sequence
#define PROBLEM "https://judge.yosupo.jp/problem/product_of_polynomial_sequence"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include "cp-algo/math/poly.hpp"
#include <bits/stdc++.h>

using namespace std;
using namespace cp_algo::math;

const int mod = 998244353;
using base = modint<mod>;
using polyn = poly_t<base>;

void solve() {
    int N;
    cin >> N;
    cp_algo::big_vector<polyn> polys(N);
    cp_algo::big_multiset<polyn, decltype([](polyn const& a, polyn const& b){
        return a.deg() < b.deg();
    })> que = {polyn(1)};
    int D = 0;
    for(int i = 0; i < N; i++) {
        int d;
        cin >> d;
        D += d;
        polyn::Vector a(d + 1);
        copy_n(istream_iterator<base>(cin), d + 1, begin(a));
        que.insert(polyn(a));
    }
    while(que.size() > 1) {
        auto A = *begin(que);
        que.erase(begin(que));
        auto B = *begin(que);
        que.erase(begin(que));
        que.insert(A * B);
    }
    begin(que)->print(D + 1);
}

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

Test cases

Env Name Status Elapsed Memory
g++ all_degree_one_00 :heavy_check_mark: AC 789 ms 144 MB
g++ all_degree_one_01 :heavy_check_mark: AC 786 ms 144 MB
g++ all_degree_one_02 :heavy_check_mark: AC 801 ms 144 MB
g++ all_degree_one_03 :heavy_check_mark: AC 796 ms 144 MB
g++ all_degree_one_04 :heavy_check_mark: AC 793 ms 144 MB
g++ example_00 :heavy_check_mark: AC 5 ms 4 MB
g++ example_01 :heavy_check_mark: AC 4 ms 4 MB
g++ example_02 :heavy_check_mark: AC 4 ms 4 MB
g++ max_and_zero_00 :heavy_check_mark: AC 470 ms 130 MB
g++ max_random_00 :heavy_check_mark: AC 693 ms 118 MB
g++ max_random_01 :heavy_check_mark: AC 780 ms 135 MB
g++ max_random_02 :heavy_check_mark: AC 319 ms 39 MB
g++ max_random_03 :heavy_check_mark: AC 751 ms 127 MB
g++ max_random_04 :heavy_check_mark: AC 586 ms 88 MB
g++ random_00 :heavy_check_mark: AC 640 ms 115 MB
g++ random_01 :heavy_check_mark: AC 712 ms 134 MB
g++ random_02 :heavy_check_mark: AC 252 ms 37 MB
g++ random_03 :heavy_check_mark: AC 387 ms 108 MB
g++ random_04 :heavy_check_mark: AC 301 ms 75 MB
g++ small_00 :heavy_check_mark: AC 5 ms 4 MB
g++ small_01 :heavy_check_mark: AC 4 ms 4 MB
g++ small_02 :heavy_check_mark: AC 4 ms 4 MB
g++ small_03 :heavy_check_mark: AC 4 ms 4 MB
g++ small_04 :heavy_check_mark: AC 4 ms 4 MB
g++ unbalanced_00 :heavy_check_mark: AC 492 ms 145 MB
g++ unbalanced_01 :heavy_check_mark: AC 497 ms 145 MB
g++ unbalanced_02 :heavy_check_mark: AC 486 ms 145 MB
Back to top page