This documentation is automatically generated by online-judge-tools/verification-helper
#include "monoid/fill.hpp"
#ifndef _MONOID_FILL
#define _MONOID_FILL
#include <utility>
namespace monoid {
template <class T>
struct fill {
typedef std::pair<bool, T> value_t;
value_t identity() const { return std::make_pair(false, T()); }
value_t merge(value_t a, value_t b) const { return b.first ? b : a; }
};
} // namespace monoid
#endif // _MONOID_FILL
#line 1 "monoid/fill.hpp"
#include <utility>
namespace monoid {
template <class T>
struct fill {
typedef std::pair<bool, T> value_t;
value_t identity() const { return std::make_pair(false, T()); }
value_t merge(value_t a, value_t b) const { return b.first ? b : a; }
};
} // namespace monoid