This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub kmyk/competitive-programming-library
#include "monoids/trivial_action.hpp"
#pragma once #include "../monoids/trivial.hpp" /** * @note lazy_propagation_segment_tree<Monoid, trivial_monoid, trivial_action<typename Monoid::value_type> > is the same to segment_tree<Monoid> */ template <class T> struct trivial_action { T operator () (typename trivial_monoid::value_type f, T x) const { return x; } };
#line 2 "monoids/trivial.hpp" struct trivial_monoid { typedef struct {} value_type; value_type unit() const { return (value_type) {}; } value_type mult(value_type a, value_type b) const { return (value_type) {}; } }; #line 3 "monoids/trivial_action.hpp" /** * @note lazy_propagation_segment_tree<Monoid, trivial_monoid, trivial_action<typename Monoid::value_type> > is the same to segment_tree<Monoid> */ template <class T> struct trivial_action { T operator () (typename trivial_monoid::value_type f, T x) const { return x; } };