[ICPC 2020 Nanjing R] Baby's First Suffix Array Problem

Luogu
IDLGP9623
Time5000ms
Memory256MB
DifficultyP7
字符串2020O2优化ICPC南京
A suffix array for string $s$ of length $n$ is a permutation $sa$ of integers from $1$ to $n$ such that $s[sa_1.. n], s[sa_2..n], \dots, s[sa_n..n]$ is the list of non-empty suffixes of $s$ sorted in lexicographical order. The rank table for suffixex of $s$ is a permutation $rank$ of integers from $1$ to $n$ such that $rank_{sa_i} = i$. Kotori has a string $s=s_1s_2\dots s_n$. She would like to ask $m$ queries. And in the $i$-th query, a substring $x=s[l_i..r_i]$ of $s$ is given, Kotori would like to know the rank of suffix $s[k_i..r_i]$ of $x$. Note $s[l..r]$ means the substring of $s$ which starts from the $l$-th position and ends at the $r$-th position, both inclusive. ## Input There are multiple test cases. The first line of the input contains an integer $T$ indicating the number of test cases. For each test case: The first line contains two integers $n$ and $m$ ($1 \le n, m \le 5 \times 10^4$) -- the length of the string and the number of queries. The second line contains a string $s$ of length $n$ consisting only of lowercase English letters. Each of the next $m$ lines contains three integers $l_i$, $r_i$ and $k_i$ ($1 \le l_i \le r_i \le n, l_i \le k_i \le r_i$) denoting a query. It is guaranteed that neither the sum of $n$ or the sum of $m$ of all test cases will exceed $5 \times 10^4$. ## Output For each query output one line containing one integer denoting the answer. [samples]
Samples
Input #1
2
10 4
baaabbabba
2 8 3
1 1 1
2 3 2
2 5 4
20 3
cccbccbadaacbbbcccab
14 17 16
3 20 17
17 20 18
Output #1
2
1
2
3
4
15
3
API Response (JSON)
{
  "problem": {
    "name": "[ICPC 2020 Nanjing R] Baby's First Suffix Array Problem",
    "description": {
      "content": " A suffix array for string $s$ of length $n$ is a permutation $sa$ of integers from $1$ to $n$ such that $s[sa_1.. n], s[sa_2..n], \\dots, s[sa_n..n]$ is the list of non-empty suffixes of $s$ sorted in",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 5000,
      "memory_limit": 262144
    },
    "difficulty": {
      "LuoguStyle": "P7"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9623"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "A suffix array for string $s$ of length $n$ is a permutation $sa$ of integers from $1$ to $n$ such that $s[sa_1.. n], s[sa_2..n], \\dots, s[sa_n..n]$ is the list of non-empty suffixes of $s$ sorted in ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments