summaryrefslogtreecommitdiff
path: root/string/lyndon.cpp
blob: 858c3db416ca1736274018df877a63cae8ade491 (plain)
1
2
3
4
5
6
7
8
9
10
11
bool next(string& s, int n, char mi = '0', char ma = '1') {
	for (int i = sz(s), j = sz(s); i < n; i++)
		s.push_back(s[i % j]);
	while(!s.empty() && s.back() == ma) s.pop_back();
	if (s.empty()) {
		s = mi;
		return false;
	} else {
		s.back()++;
		return true;
}}