CF1530G.What a Reversal
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You have two strings a and b of equal length n consisting of characters 0 and 1, and an integer k .
You need to make strings a and b equal.
In one step, you can choose any substring of a containing exactly k characters 1 (and arbitrary number of characters 0) and reverse it. Formally, if a=a1a2…an , you can choose any integers l and r ( 1≤l≤r≤n ) such that there are exactly k ones among characters al,al+1,…,ar , and set a to a1a2…al−1arar−1…alar+1ar+2…an .
Find a way to make a equal to b using at most 4n reversals of the above kind, or determine that such a way doesn't exist. The number of reversals doesn't have to be minimized.
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t ( 1≤t≤2000 ). Description of the test cases follows.
Each test case consists of three lines. The first line of each test case contains two integers n and k ( 1≤n≤2000 ; 0≤k≤n ).
The second line contains string a of length n .
The third line contains string b of the same length. Both strings consist of characters 0 and 1.
It is guaranteed that the sum of n over all test cases does not exceed 2000 .
输出格式
For each test case, if it's impossible to make a equal to b in at most 4n reversals, print a single integer −1 .
Otherwise, print an integer m ( 0≤m≤4n ), denoting the number of reversals in your sequence of steps, followed by m pairs of integers li,ri ( 1≤li≤ri≤n ), denoting the boundaries of the substrings of a to be reversed, in chronological order. Each substring must contain exactly k ones at the moment of reversal.
Note that m doesn't have to be minimized. If there are multiple answers, print any.
输入输出样例
输入#1
6 6 1 101010 010101 6 3 101010 010101 6 0 101010 010101 6 6 101010 010101 4 2 0000 1111 9 2 011100101 101001011
输出#1
3 1 2 3 4 5 6 1 1 6 -1 -1 -1 5 4 8 8 9 3 6 1 4 3 6
说明/提示
In the first test case, after the first reversal $a = $ 011010, after the second reversal $a = $ 010110, after the third reversal $a = $ 010101.