src/edh/bwt/inv.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../util/alias/others/lib.hpp" | ||
| 4 | |||
| 5 | namespace tifa_libs { | ||
| 6 | |||
| 7 | 12 | inline strn bwt_inv(strnv t) NE { | |
| 8 | 12 | vecu nxt(t.size()); | |
| 9 | 12 | std::iota(begin(nxt), end(nxt), 0); | |
| 10 | 1320646 | stable_sort(nxt, [&t](u32 a, u32 b) NE { return t[a] < t[b]; }); | |
| 11 | 24 | strn ret{t[nxt[0]]}; | |
| 12 |
2/2✓ Branch 4 taken 95180 times.
✓ Branch 5 taken 12 times.
|
95192 | for (u32 i = nxt[0]; i;) ret += t[i = nxt[i]]; |
| 13 | 12 | return ret; | |
| 14 | 12 | } | |
| 15 | |||
| 16 | } // namespace tifa_libs | ||
| 17 |