A15824 | Code Lock
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Lara has a safe that is locked with a circle-shaped code lock that consists of a rotating arrow, a static circumference around the arrow, an input screen, and an input button.
The circumference of the lock is split into $k$ equal sections numbered from $1$ to $k$ in clockwise order. Arrow always points to one of the sections. Each section is marked with one of the first $k$ letters of the English alphabet. No two sections are marked with the same letter.
Due to the lock limitations, the safe's password is a string of length $n$ that consists of first $k$ letters of the English alphabet only. Lara enters the password by rotating the lock's arrow and pressing the input button. Initially, the lock's arrow points to section $1$ and the input screen is empty. In one second she can do one of the following actions.
- Rotate the arrow one section clockwise. If the arrow was pointing at section $x < k$ it will now point at section $x + 1$ . If the arrow was pointing at section $k$ it will now point at section $1$ .
- Rotate the arrow one section counter-clockwise. If the arrow was pointing at section $x > 1$ it will now point at section $x - 1$ . If the arrow was pointing at section $1$ it will now point at section $k$ .
- Press the input button. The letter marked on the section that the arrow points to will be added to the content of the input screen.
As soon as the content of the input screen matches the password, the safe will open. Lara always enters her password in the minimum possible time.Lara has recently found out that the safe can be re-programmed. She can take the first $k$ letters of the English alphabet and assign them to the sectors in any order she likes. Now she wants to re-arrange the letters in a way that will minimize the number of seconds it takes her to input the password. Compute this minimum number of seconds and the number of ways to assign letters, for which this minimum number of seconds is achieved.
Two ways to assign letters to sectors are considered to be distinct if there exists at least one sector $i$ that is assigned different letters.
The circumference of the lock is split into $k$ equal sections numbered from $1$ to $k$ in clockwise order. Arrow always points to one of the sections. Each section is marked with one of the first $k$ letters of the English alphabet. No two sections are marked with the same letter.
Due to the lock limitations, the safe's password is a string of length $n$ that consists of first $k$ letters of the English alphabet only. Lara enters the password by rotating the lock's arrow and pressing the input button. Initially, the lock's arrow points to section $1$ and the input screen is empty. In one second she can do one of the following actions.
- Rotate the arrow one section clockwise. If the arrow was pointing at section $x < k$ it will now point at section $x + 1$ . If the arrow was pointing at section $k$ it will now point at section $1$ .
- Rotate the arrow one section counter-clockwise. If the arrow was pointing at section $x > 1$ it will now point at section $x - 1$ . If the arrow was pointing at section $1$ it will now point at section $k$ .
- Press the input button. The letter marked on the section that the arrow points to will be added to the content of the input screen.
As soon as the content of the input screen matches the password, the safe will open. Lara always enters her password in the minimum possible time.Lara has recently found out that the safe can be re-programmed. She can take the first $k$ letters of the English alphabet and assign them to the sectors in any order she likes. Now she wants to re-arrange the letters in a way that will minimize the number of seconds it takes her to input the password. Compute this minimum number of seconds and the number of ways to assign letters, for which this minimum number of seconds is achieved.
Two ways to assign letters to sectors are considered to be distinct if there exists at least one sector $i$ that is assigned different letters.
输入格式
The first line of the input contains two integers $k$ and $n$ ( $2 \leq k \leq 16$ , $2 \leq n \leq 100\,000$ ) — the number of sectors on the lock's circumference and the length of Lara's password, respectively.
The second line of the input contains a string of length $n$ that consists of the first $k$ lowercase letters of the English alphabet only. This string is the password.
The second line of the input contains a string of length $n$ that consists of the first $k$ lowercase letters of the English alphabet only. This string is the password.
输出格式
On the first line print minimum possible number of seconds it can take Lara to enter the password and open the safe if she assigns letters to sectors optimally.
On the second line print the number of ways to assign letters optimally.
On the second line print the number of ways to assign letters optimally.
输入输出样例
输入 #1
3 10 abcabcabca
输出 #1
19 2
输入 #2
4 20 bcbcbcbcadadadadcbda
输出 #2
40 2
输入 #3
4 6 adcbda
输出 #3
12 4
The initial states of optimal arrangements for the first example are shown in the figure below.
The initial states of optimal arrangements for the second example are shown in the figure below.
The initial states of optimal arrangements for the third example are shown in the figure below.

The initial states of optimal arrangements for the second example are shown in the figure below.
The initial states of optimal arrangements for the third example are shown in the figure below.

C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted