CF1530G.What a Reversal

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

You have two strings aa and bb of equal length nn consisting of characters 0 and 1, and an integer kk .

You need to make strings aa and bb equal.

In one step, you can choose any substring of aa containing exactly kk characters 1 (and arbitrary number of characters 0) and reverse it. Formally, if a=a1a2ana = a_1 a_2 \ldots a_n , you can choose any integers ll and rr ( 1lrn1 \le l \le r \le n ) such that there are exactly kk ones among characters al,al+1,,ara_l, a_{l+1}, \ldots, a_r , and set aa to a1a2al1arar1alar+1ar+2ana_1 a_2 \ldots a_{l-1} a_r a_{r-1} \ldots a_l a_{r+1} a_{r+2} \ldots a_n .

Find a way to make aa equal to bb using at most 4n4n 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 tt ( 1t20001 \le t \le 2000 ). Description of the test cases follows.

Each test case consists of three lines. The first line of each test case contains two integers nn and kk ( 1n20001 \le n \le 2000 ; 0kn0 \le k \le n ).

The second line contains string aa of length nn .

The third line contains string bb of the same length. Both strings consist of characters 0 and 1.

It is guaranteed that the sum of nn over all test cases does not exceed 20002000 .

输出格式

For each test case, if it's impossible to make aa equal to bb in at most 4n4n reversals, print a single integer 1-1 .

Otherwise, print an integer mm ( 0m4n0 \le m \le 4n ), denoting the number of reversals in your sequence of steps, followed by mm pairs of integers li,ril_i, r_i ( 1lirin1 \le l_i \le r_i \le n ), denoting the boundaries of the substrings of aa to be reversed, in chronological order. Each substring must contain exactly kk ones at the moment of reversal.

Note that mm 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.

首页