QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show]

#14977. 櫻之魔法

Statistics

Una 正在一條有 $n$ 棵櫻花樹的小徑上行走,春天的碎片從天空中輕輕飄落。在第 $i$ 棵櫻花樹上,有 $a_i$ 朵花。

Una 非常想念她最好的朋友 Kamome。她記得,在 Kamome 離開這座小鎮的那天,Kamome 給了 Una 一個整數序列 $b_1, \dots, b_n$。Kamome 告訴 Una,當對所有 $i \in [1, n]$ 都有 $a_i \equiv b_i \pmod 2$ 時,櫻花樹中的魔法力量就會被啟動,她們就能再次重逢。

Una 的願望如此強烈,以至於她的想像變成了現實。她獲得了使花朵綻放的魔法力量。在每次揮動魔杖時,她可以選擇櫻花樹的一個連續子段 $[l, r]$,並將每個 $i \in [l, r]$ 的 $a_i$ 變為 $\sum_{j=l}^i a_j$。

擁有魔法天賦的 Una 每天可以施展任意次數的魔法,但她在同一天內不能對同一棵樹施展兩次或更多次魔法,否則這棵樹會因為過量的魔法力量而枯死。(換句話說,同一天選擇的子段不得相交。)

Una 已經十年沒見到 Kamome 了,她不想再等下去了。Una 想知道她們重逢所需的最少天數(亦即對每個 $i \in [1, n]$ 都使 $a_i \equiv b_i \pmod 2$),以及為了達成此最少天數她每天應該施展的魔法。注意這可能是無法達成的,在這種情況下你應該告訴她。(更多細節請參閱輸出格式部分。)

輸入格式

每個測試點包含多組測試資料。第一行包含測試資料組數 $t$($1 \le t \le 2.5 \times 10^4$)。接下來是各組測試資料的描述。

每組測試資料的第一行包含一個整數 $n$($1 \le n \le 10^3$,$\sum n^2 \le 10^6$),表示櫻花樹的數量。

每組測試資料的第二行包含 $n$ 個整數 $a_1, \dots, a_n$($0 \le a_i \le 1$),表示目前每棵樹上的花朵數量。

每組測試資料的第三行包含 $n$ 個整數 $b_1, \dots, b_n$($0 \le b_i \le 1$),表示 Kamome 給 Una 的序列。

輸出格式

對於每組測試資料,若無法讓 Kamome 與 Una 重逢,請輸出 -1。否則,輸出一個整數 $k$,表示 Una 與 Kamome 重逢所需的最少天數。

在接下來 $k$ 行中的第 $i$ 行,你應該給出 Una 在第 $i$ 天應執行的魔法指令。你應該輸出 $2c + 1$ 個整數 $c_i, l_{i,1}, r_{i,1}, l_{i,2}, r_{i,2}, \dots, l_{i,c}, r_{i,c}$,其中 $c$ 是她在第 $i$ 天應執行的魔法操作次數,而 $[l_{i,j}, r_{i,j}]$ 表示她在第 $i$ 天選擇的第 $j$ 個連續子段。你必須保證對每個 $1 \le i \le c - 1$ 有 $r_i < l_{i+1}$,且對每個 $1 \le i \le c$ 有 $l_i \le r_i$。

若有多組解,你可以輸出任意一組。

範例

輸入

3
5
1 0 1 0 1
0 1 0 1 0
3
1 1 0
1 1 1
10
1 0 0 1 0 1 0 0 1 0
1 0 1 0 0 1 0 1 0 0

輸出

-1
1
1 2 3
2
2 1 4 6 9
2 1 2 6 7

說明

在第三組測試資料中,第一天結束時,序列 $a$ 為 $[\underline{1, 1, 1, 2}, 0, \underline{1, 1, 1, 2}, 0]$。

第二天結束時,序列 $a$ 為 $[\underline{1, 2}, 1, 2, 0, \underline{1, 2}, 1, 2, 0]$。

顯然兩天後有 $a_i \equiv b_i \pmod 2$。可以證明無法在一天之內達成。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.