cp-library-cpp

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

View the Project on GitHub suisen-cp/cp-library-cpp

:heavy_check_mark: test/src/sequence/montmort_number/montmort_number_mod.test.cpp

Depends on

Code

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

#include <iostream>
#include <atcoder/modint>
using mint = atcoder::modint;

#include "library/sequence/montmort_number.hpp"
using suisen::montmort_number;

int main() {
    int n, m;
    std::cin >> n >> m;
    mint::set_mod(m);
    std::vector<mint> res = montmort_number<mint>(n);
    for (int i = 1; i <= n; ++i) {
        std::cout << res[i].val() << " \n"[i == n];
    }
    return 0;
}
#line 1 "test/src/sequence/montmort_number/montmort_number_mod.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/montmort_number_mod"

#include <iostream>
#include <atcoder/modint>
using mint = atcoder::modint;

#line 1 "library/sequence/montmort_number.hpp"



#include <vector>

namespace suisen {
    template <typename mint>
    std::vector<mint> montmort_number(int n) {
        std::vector<mint> res{ 1, 0 };
        for (int i = 2; i <= n; ++i) res.push_back((i - 1) * (res[i - 1] + res[i - 2]));
        res.resize(n + 1);
        return res;
    }
} // namespace suisen


#line 8 "test/src/sequence/montmort_number/montmort_number_mod.test.cpp"
using suisen::montmort_number;

int main() {
    int n, m;
    std::cin >> n >> m;
    mint::set_mod(m);
    std::vector<mint> res = montmort_number<mint>(n);
    for (int i = 1; i <= n; ++i) {
        std::cout << res[i].val() << " \n"[i == n];
    }
    return 0;
}
Back to top page