#pragma once
template<typenameC>vector<pair<typenameC::value_type,int>>RunLengthEncoding(constC&S){usingT=typenameC::value_type;if(S.empty())return{};vector<pair<T,int>>ret;Tc=S[0];intn=1;for(inti=1;i<(int)S.size();i++){if(S[i]==c)n++;else{ret.emplace_back(c,n);c=S[i],n=1;}}ret.emplace_back(c,n);returnret;}/**
* @brief Run Length Encoding(連長圧縮)
*/
#line 2 "string/run-length-encoding.hpp"
template<typenameC>vector<pair<typenameC::value_type,int>>RunLengthEncoding(constC&S){usingT=typenameC::value_type;if(S.empty())return{};vector<pair<T,int>>ret;Tc=S[0];intn=1;for(inti=1;i<(int)S.size();i++){if(S[i]==c)n++;else{ret.emplace_back(c,n);c=S[i],n=1;}}ret.emplace_back(c,n);returnret;}/**
* @brief Run Length Encoding(連長圧縮)
*/