This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub morioprog/cpplib
#include "util/groupby.hpp"
ランレングス圧縮. 命名はPythonに準拠.
vector<bool>
groupby(v)
v
vector<pair<T, int>>
T
int
/** * @brief ランレングス圧縮 (groupby) * @docs docs/util/groupby.md */ template <typename Container> auto groupby(const Container &vec) { assert(vec.size() != 0); vector<pair<remove_const_t<remove_reference_t<decltype(vec.front())>>, int>> ret; int piv = -1; for (auto &e : vec) { if (piv == -1 or ret[piv].first != e) ++piv, ret.emplace_back(make_pair(e, 1)); else ++(ret[piv].second); } return ret; }
#line 1 "util/groupby.hpp" /** * @brief ランレングス圧縮 (groupby) * @docs docs/util/groupby.md */ template <typename Container> auto groupby(const Container &vec) { assert(vec.size() != 0); vector<pair<remove_const_t<remove_reference_t<decltype(vec.front())>>, int>> ret; int piv = -1; for (auto &e : vec) { if (piv == -1 or ret[piv].first != e) ++piv, ret.emplace_back(make_pair(e, 1)); else ++(ret[piv].second); } return ret; }