competitive-cpp

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

View the Project on GitHub fiore57/competitive-cpp

:warning: others/run-length-encoding.cpp

Back to top page

Code

template <typename T>
vector<pair<T, ll>> rle(const vector<T> &v) {
    vector<pair<T, ll>> ret;
    ret.reserve(v.size() / 2);
    for (const auto &x : v) {
        if (ret.empty() || ret.back().first != x) {
            ret.emplace_back(x, 1);
        } else {
            ++ret.back().second;
        }
    }
    return ret;
}
vector<pair<char, ll>> rle(const string &s) {
    vector<pair<char, ll>> ret;
    ret.reserve(s.size() / 2);
    for (const auto &c : s) {
        if (ret.empty() || ret.back().first != c) {
            ret.emplace_back(c, 1);
        } else {
            ++ret.back().second;
        }
    }
    return ret;
}

#line 1 "others/run-length-encoding.cpp"
template <typename T>
vector<pair<T, ll>> rle(const vector<T> &v) {
    vector<pair<T, ll>> ret;
    ret.reserve(v.size() / 2);
    for (const auto &x : v) {
        if (ret.empty() || ret.back().first != x) {
            ret.emplace_back(x, 1);
        } else {
            ++ret.back().second;
        }
    }
    return ret;
}
vector<pair<char, ll>> rle(const string &s) {
    vector<pair<char, ll>> ret;
    ret.reserve(s.size() / 2);
    for (const auto &c : s) {
        if (ret.empty() || ret.back().first != c) {
            ret.emplace_back(c, 1);
        } else {
            ++ret.back().second;
        }
    }
    return ret;
}

Back to top page