P16841 [GKS 2021 #B] Increasing Substring
Description
Your friend John just came back from vacation, and he would like to share with you a new property that he learned about strings.
John learned that a string $C$ of length $L$ consisting of uppercase English characters is strictly increasing if, for every pair of indices $i$ and $j$ such that $1 \le i < j \le L$ ($1$-based), the character at position $i$ is smaller than the character at position $j$.
For example, the strings `ABC` and `ADF` are strictly increasing, however the strings `ACC` and `FDA` are not.
Now that he taught you this new exciting property, John decided to challenge you: given a string $S$ of length $N$, you have to find out, for every position $1 \le i \le N$, what is the length of the longest strictly increasing substring that ends at position $i$.
Input Format
The first line of the input gives the number of test cases, $T$. $T$ test cases follow.
Each test case consists of two lines.
The first line contains an integer $N$, representing the length of the string.
The second line contains a string $S$ of length $N$, consisting of uppercase English characters.
Output Format
For each test case, output one line containing `Case #x:` followed by $y_1\ y_2\ \ldots\ y_n$, where $x$ is the test case number (starting from $1$) and $y_i$ is the length of the longest strictly increasing substring that ends at position $i$.
Explanation/Hint
In Sample Case $1$, the longest strictly increasing substring ending at position $1$ is `A`. The longest strictly increasing substrings ending at positions $2$, $3$, and $4$ are `AB`, `B`, and `BC`, respectively.
In Sample Case $2$, the longest strictly increasing substrings for each position are `A`, `AB`, `A`, `AC`, `ACD`, and `A`.
### Limits
$1 \le T \le 100$.
**Test Set $1$**
$1 \le N \le 100$.
**Test Set $2$**
$1 \le N \le 2 \times 10^5$.