This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub noshi91/Library
#include "other/int_alias.cpp" #include <algorithm> #include <vector> template <class T> std::vector<T> max_plus_convolution(const std::vector<T> &a, const std::vector<T> &b) { const usize n = a.size(); const usize m = b.size(); std::vector<T> c(n + m - 1, std::numeric_limits<T>::lowest()); for (usize i = 0; i != n; i += 1) { for (usize j = 0; j != m; j += 1) c[i + j] = std::max(c[i + j], a[i] + b[j]); } return c; } /** * @brief Max Plus Convolution */
#line 2 "other/int_alias.cpp" #include <cstddef> #include <cstdint> using i32 = std::int32_t; using i64 = std::int64_t; using u32 = std::uint32_t; using u64 = std::uint64_t; using isize = std::ptrdiff_t; using usize = std::size_t; #line 2 "algorithm/max_plus_convolution.cpp" #include <algorithm> #include <vector> template <class T> std::vector<T> max_plus_convolution(const std::vector<T> &a, const std::vector<T> &b) { const usize n = a.size(); const usize m = b.size(); std::vector<T> c(n + m - 1, std::numeric_limits<T>::lowest()); for (usize i = 0; i != n; i += 1) { for (usize j = 0; j != m; j += 1) c[i + j] = std::max(c[i + j], a[i] + b[j]); } return c; } /** * @brief Max Plus Convolution */