Skip to content

Commit f115892

Browse files
committed
trying this
1 parent 2ba1a33 commit f115892

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

tests/library_checker_aizu_tests/strings/longest_common_substring.test.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
#define PROBLEM \
22
"https://judge.yosupo.jp/problem/longest_common_substring"
33
#include "../template.hpp"
4-
#include "../../../library/strings/suffix_array/suffix_array_query.hpp"
4+
#include "../../../library/strings/suffix_array/suffix_array.hpp"
55
int main() {
66
cin.tie(0)->sync_with_stdio(0);
77
string s, t;
88
cin >> s >> t;
99
string both = s + '$' + t;
1010
auto [sa, sa_inv, lcp] = get_sa(both, 256);
11-
sa_query sf_a(both, sa, sa_inv, lcp);
1211
pair<int, int> substr_s = {0, 0}, substr_t = {0, 0};
13-
for (int i = 0; i < sz(sf_a.lcp); i++) {
14-
if (both[sf_a.sa[i]] == '$' ||
15-
both[sf_a.sa[i + 1]] == '$')
12+
for (int i = 0; i < sz(lcp); i++) {
13+
if (both[sa[i]] == '$' || both[sa[i + 1]] == '$')
1614
continue;
17-
bool before_in_s = (sf_a.sa[i] < sz(s));
18-
bool after_in_s = (sf_a.sa[i + 1] < sz(s));
15+
bool before_in_s = (sa[i] < sz(s));
16+
bool after_in_s = (sa[i + 1] < sz(s));
1917
if (before_in_s ^ after_in_s) {
20-
if (sf_a.lcp[i] > substr_s.second - substr_s.first) {
21-
substr_s = {sf_a.sa[i], sf_a.sa[i] + sf_a.lcp[i]};
22-
substr_t = {
23-
sf_a.sa[i + 1], sf_a.sa[i + 1] + sf_a.lcp[i]};
18+
if (lcp[i] > substr_s.second - substr_s.first) {
19+
substr_s = {sa[i], sa[i] + lcp[i]};
20+
substr_t = {sa[i + 1], sa[i + 1] + lcp[i]};
2421
if (after_in_s) swap(substr_s, substr_t);
2522
substr_t.first -= int(sz(s)) + 1;
2623
substr_t.second -= int(sz(s)) + 1;

0 commit comments

Comments
 (0)