A15276 | Jumping on Tiles
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Polycarp was given a row of tiles. Each tile contains one lowercase letter of the Latin alphabet. The entire sequence of tiles forms the string $s$ .
In other words, you are given a string $s$ consisting of lowercase Latin letters.
Initially, Polycarp is on the first tile of the row and wants to get to the last tile by jumping on the tiles. Jumping from $i$ -th tile to $j$ -th tile has a cost equal to $|index(s_i) - index(s_j)|$ , where $index(c)$ is the index of the letter $c$ in the alphabet (for example, $index($ 'a' $)=1$ , $index($ 'b' $)=2$ , ..., $index($ 'z' $)=26$ ) .
Polycarp wants to get to the $n$ -th tile for the minimum total cost, but at the same time make maximum number of jumps.
In other words, among all possible ways to get to the last tile for the minimum total cost, he will choose the one with the maximum number of jumps.
Polycarp can visit each tile at most once.
Polycarp asks you to help — print the sequence of indices of string $s$ on which he should jump.
In other words, you are given a string $s$ consisting of lowercase Latin letters.
Initially, Polycarp is on the first tile of the row and wants to get to the last tile by jumping on the tiles. Jumping from $i$ -th tile to $j$ -th tile has a cost equal to $|index(s_i) - index(s_j)|$ , where $index(c)$ is the index of the letter $c$ in the alphabet (for example, $index($ 'a' $)=1$ , $index($ 'b' $)=2$ , ..., $index($ 'z' $)=26$ ) .
Polycarp wants to get to the $n$ -th tile for the minimum total cost, but at the same time make maximum number of jumps.
In other words, among all possible ways to get to the last tile for the minimum total cost, he will choose the one with the maximum number of jumps.
Polycarp can visit each tile at most once.
Polycarp asks you to help — print the sequence of indices of string $s$ on which he should jump.
输入格式
The first line of the input contains an integer $t$ ( $1 \le t \le 10^4$ ) — the number of test cases in the test.
Each test case is given by the string $s$ ( $2 \le |s| \le 2 \cdot 10^5$ ), where $|s|$ — is the length of string $s$ . The string $s$ consists of lowercase Latin letters.
It is guaranteed that the sum of string lengths $s$ over all test cases does not exceed $2 \cdot 10^5$ .
Each test case is given by the string $s$ ( $2 \le |s| \le 2 \cdot 10^5$ ), where $|s|$ — is the length of string $s$ . The string $s$ consists of lowercase Latin letters.
It is guaranteed that the sum of string lengths $s$ over all test cases does not exceed $2 \cdot 10^5$ .
输出格式
The answer to each test case consists of two lines.
In the first line print two integers $cost$ , $m$ , where $cost$ is the minimum total cost of the path, and $m$ is the maximum number of visited tiles Polycarp can make to get to $n$ -th tiles for the minimum total cost $cost$ (i.e. the number of jumps is $m-1$ ).
In the next line print $m$ different numbers $j_1, j_2, \dots, j_m$ ( $1 \le j_i \le |s|$ ) — the sequence of indices of the tiles Polycarp will jump on. The first number in the sequence must be $1$ (that is, $j_1=1$ ) and the last number must be the value of $|s|$ (that is, $j_m=|s|$ ).
If there are multiple answers, print any of them.
In the first line print two integers $cost$ , $m$ , where $cost$ is the minimum total cost of the path, and $m$ is the maximum number of visited tiles Polycarp can make to get to $n$ -th tiles for the minimum total cost $cost$ (i.e. the number of jumps is $m-1$ ).
In the next line print $m$ different numbers $j_1, j_2, \dots, j_m$ ( $1 \le j_i \le |s|$ ) — the sequence of indices of the tiles Polycarp will jump on. The first number in the sequence must be $1$ (that is, $j_1=1$ ) and the last number must be the value of $|s|$ (that is, $j_m=|s|$ ).
If there are multiple answers, print any of them.
输入输出样例
输入 #1
6 logic codeforces bca aaaaaaaaaaa adbaadabad to
输出 #1
9 4 1 4 3 5 16 10 1 8 3 4 9 5 2 6 7 10 1 2 1 3 0 11 1 8 10 4 3 5 7 2 9 6 11 3 10 1 9 5 4 7 3 8 6 2 10 5 2 1 2
In the first test case, the required path corresponds to the picture:
In this case, the minimum possible total cost of the path is achieved. Since $index($ 'l' $)=12$ , $index($ 'o' $)=15$ , $index($ 'g' $)=7$ , $index($ 'i' $)=9$ , $index($ 'c' $)=3$ , then the total cost of the path is $|12-9|+|9-7|+|7-3|=3+2+4=9$ .
In this case, the minimum possible total cost of the path is achieved. Since $index($ 'l' $)=12$ , $index($ 'o' $)=15$ , $index($ 'g' $)=7$ , $index($ 'i' $)=9$ , $index($ 'c' $)=3$ , then the total cost of the path is $|12-9|+|9-7|+|7-3|=3+2+4=9$ .
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted