测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A13477. Binary Subsequence Rotation

编程题 普及/提高-

题目描述

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

说明/提示

In the first test, Naman can choose the subsequence corresponding to indices $\{2, 6\}$ and rotate it once to convert $s$ into $t$ .

In the second test, he can rotate the subsequence corresponding to all indices $5$ times. It can be proved, that it is the minimum required number of operations.

In the last test, it is impossible to convert $s$ into $t$ .
上一题 去做题 下一题