题库练习 Binary Subsequence Rotation
← 上一题 下一题 →

A13477 | Binary Subsequence Rotation

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Naman has two binary strings $s$ and $t$ of length $n$ (a binary string is a string which only consists of the characters "0" and "1"). He wants to convert $s$ into $t$ using the following operation as few times as possible.

In one operation, he can choose any subsequence of $s$ and rotate it clockwise once.

For example, if $s = 1\textbf{1}101\textbf{00}$ , he can choose a subsequence corresponding to indices ( $1$ -based) $\{2, 6, 7 \}$ and rotate them clockwise. The resulting string would then be $s = 1\textbf{0}101\textbf{10}$ .

A string $a$ is said to be a subsequence of string $b$ if $a$ can be obtained from $b$ by deleting some characters without changing the ordering of the remaining characters.

To perform a clockwise rotation on a sequence $c$ of size $k$ is to perform an operation which sets $c_1:=c_k, c_2:=c_1, c_3:=c_2, \ldots, c_k:=c_{k-1}$ simultaneously.

Determine the minimum number of operations Naman has to perform to convert $s$ into $t$ or say that it is impossible.

输入格式

The first line contains a single integer $n$ $(1 \le n \le 10^6)$ — the length of the strings.

The second line contains the binary string $s$ of length $n$ .

The third line contains the binary string $t$ of length $n$ .

输出格式

If it is impossible to convert $s$ to $t$ after any number of operations, print $-1$ .

Otherwise, print the minimum number of operations required.

输入输出样例

输入 #1
6
010000
000001
输出 #1
1
输入 #2
10
1111100000
0000011111
输出 #2
5
输入 #3
8
10101010
01010101
输出 #3
1
输入 #4
10
1111100000
1111100001
输出 #4
-1
C++ 编辑器
输入
输出