summaryrefslogtreecommitdiff
path: root/content/string/suffixAutomaton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'content/string/suffixAutomaton.cpp')
-rw-r--r--content/string/suffixAutomaton.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/content/string/suffixAutomaton.cpp b/content/string/suffixAutomaton.cpp
index 9a68cb3..f9aa80b 100644
--- a/content/string/suffixAutomaton.cpp
+++ b/content/string/suffixAutomaton.cpp
@@ -4,20 +4,20 @@ struct SuffixAutomaton {
struct State {
int len, link = -1;
array<int, ALPHABET_SIZE> nxt; // map if large Alphabet
- State(int l) : len(l) {fill(all(nxt), -1);}
+ State(int l): len(l) { ranges::fill(nxt, -1); }
};
vector<State> st = {State(0)};
int cur = 0;
SuffixAutomaton(const string& s) {
- st.reserve(2 * sz(s));
+ st.reserve(2 * ssize(s));
for (auto c : s) extend(c - OFFSET);
}
void extend(int c) {
int p = cur;
- cur = sz(st);
+ cur = ssize(st);
st.emplace_back(st[p].len + 1);
for (; p != -1 && st[p].nxt[c] < 0; p = st[p].link) {
st[p].nxt[c] = cur;
@@ -33,9 +33,9 @@ struct SuffixAutomaton {
st.back().link = st[q].link;
st.back().nxt = st[q].nxt;
for (; p != -1 && st[p].nxt[c] == q; p = st[p].link) {
- st[p].nxt[c] = sz(st) - 1;
+ st[p].nxt[c] = ssize(st) - 1;
}
- st[q].link = st[cur].link = sz(st) - 1;
+ st[q].link = st[cur].link = ssize(st) - 1;
}}}
vector<int> calculateTerminals() {
@@ -49,7 +49,7 @@ struct SuffixAutomaton {
// Pair with start index (in t) and length of LCS.
pair<int, int> longestCommonSubstring(const string& t) {
int v = 0, l = 0, best = 0, bestp = -1;
- for (int i = 0; i < sz(t); i++) {
+ for (int i = 0; i < ssize(t); i++) {
int c = t[i] - OFFSET;
while (v > 0 && st[v].nxt[c] < 0) {
v = st[v].link;