AT_agc069_c.[AGC069C] AB*A Changing

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

现有两个长度为 NN 的字符串 SS 和 TT,它们都只由字符 A 和 B 组成。我们用 sis_i 来表示字符串 SS 的第 ii 个字符。

对于字符串 SS,你可以反复进行以下操作不限次数:

  • 选择两个整数 (i,j)(i, j),要求满足:

    • 1≤i<j≤N1 \leq i < j \leq N
    • si=sj=As_i = s_j = \text{A}
    • si+1,si+2,…,sj−1s_{i+1}, s_{i+2}, \ldots, s_{j-1} 都为 B
  • 然后,将 si,si+1,…,sjs_i, s_{i+1}, \ldots, s_j 这段字符同时替换为它们相反的字符,即 A 换成 B,B 换成 A。

你的任务是判断,通过这种操作,能否将 SS 变成 TT,如果可以,求出最小操作次数;如果不可以,输出 -1。

输入格式

输入从标准输入中提供,格式为:

NN SS TT

输出格式

如果可以通过操作将字符串 SS 变为 TT,输出最少需要的操作次数;如果无法做到,输出 -1。

输入输出样例

  • 输入#1

    5
    AAABA
    BAAAB

    输出#1

    2
  • 输入#2

    1
    A
    B

    输出#2

    -1
  • 输入#3

    1
    A
    A

    输出#3

    0
  • 输入#4

    10
    AAABBABAAB
    BBABBAAABB

    输出#4

    7

说明/提示

  • 1≤N≤200,0001 \leq N \leq 200,000
  • S,TS, T 均为由 A 和 B 组成的长度为 NN 的字符串

示例说明

示例 1

通过下面的操作,可以用 2 次将 SS 变为 TT:

  1. 选择 (i,j)=(2,3)(i, j) = (2, 3),此时 SS 变为 ABBBA。
  2. 选择 (i,j)=(1,5)(i, j) = (1, 5),此时 SS 变为 BAAAB。

所以,最少操作次数为 2。

示例 2

不能通过任何操作将 SS 变为 TT,因而答案是 -1。注意:要求 i<ji < j。

示例 3

此时 SS 和 TT 本来就相同,不需任何操作。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页