QOJ.ac

QOJ

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

#14977. Sakura no Mahou

Statistics

Una sedang berjalan di sebuah jalan setapak dengan $n$ pohon sakura, kepingan musim semi jatuh dengan lembut dari langit. Pada pohon sakura ke-$i$, terdapat $a_i$ bunga yang mekar.

Una sangat merindukan sahabat terbaiknya, Kamome. Ia ingat bahwa pada hari Kamome meninggalkan kota ini, Kamome memberi Una sebuah barisan bilangan bulat $b_1, \dots, b_n$. Kamome memberi tahu Una bahwa ketika $a_i \equiv b_i \pmod 2$ untuk setiap $i \in [1, n]$, kekuatan sihir di pohon-pohon sakura akan aktif dan mereka akan bertemu kembali.

Keinginan Una begitu kuat sehingga imajinasinya menjadi kenyataan. Ia memperoleh kekuatan sihir untuk membuat bunga-bunga mekar. Pada setiap ayunan tongkat sihirnya, ia dapat memilih sebuah subbarisan berurutan dari pohon sakura $[l, r]$, dan mengubah $a_i$ menjadi $\sum_{j=l}^i a_j$ untuk setiap $i \in [l, r]$.

Diberkahi dengan sihir, Una dapat melakukan sihir berapa kali pun setiap hari, tetapi ia tidak boleh melakukan sihir pada pohon yang sama dua kali atau lebih pada hari yang sama, karena jika tidak pohon tersebut akan mati akibat kekuatan sihir yang berlebihan. (Dengan kata lain, subbarisan-subbarisan yang dipilih pada hari yang sama tidak boleh beririsan.)

Una sudah sepuluh tahun tidak bertemu Kamome, dan ia tidak ingin menunggu lebih lama lagi. Una ingin mengetahui jumlah hari minimum agar mereka dapat bertemu (yaitu, membuat $a_i \equiv b_i \pmod 2$ untuk setiap $i \in [1, n]$), serta sihir yang harus ia lakukan pada setiap hari untuk mencapai jumlah minimum tersebut. Perhatikan bahwa hal ini mungkin saja mustahil, dan dalam kasus tersebut Anda harus memberi tahunya demikian. (Silakan merujuk ke bagian Keluaran untuk detail lebih lanjut.)

Masukan

Setiap pengujian berisi beberapa kasus uji. Baris pertama berisi banyaknya kasus uji $t$ ($1 \le t \le 2.5 \times 10^4$). Deskripsi dari masing-masing kasus uji menyusul.

Baris pertama dari setiap kasus uji berisi satu bilangan bulat $n$ ($1 \le n \le 10^3$, $\sum n^2 \le 10^6$), yaitu banyaknya pohon sakura.

Baris kedua dari setiap kasus uji berisi $n$ bilangan bulat $a_1, \dots, a_n$ ($0 \le a_i \le 1$), yaitu banyaknya bunga pada masing-masing pohon saat ini.

Baris ketiga dari setiap kasus uji berisi $n$ bilangan bulat $b_1, \dots, b_n$ ($0 \le b_i \le 1$), yaitu barisan yang diberikan Kamome kepada Una.

Keluaran

Untuk setiap kasus uji, jika mustahil membuat Kamome dan Una bertemu, cetak -1. Jika mungkin, cetak satu bilangan bulat $k$, yang menyatakan jumlah hari minimum yang diperlukan Una untuk bertemu Kamome.

Pada baris ke-$i$ dari $k$ baris berikutnya, Anda harus memberikan instruksi kepada Una mengenai sihir yang harus ia lakukan pada hari ke-$i$. Anda harus mencetak $2c + 1$ bilangan bulat $c_i, l_{i,1}, r_{i,1}, l_{i,2}, r_{i,2}, \dots, l_{i,c}, r_{i,c}$, dengan $c$ adalah banyaknya operasi sihir yang harus ia lakukan pada hari ke-$i$, dan $[l_{i,j}, r_{i,j}]$ menyatakan subbarisan berurutan ke-$j$ yang harus ia pilih pada hari ke-$i$. Anda harus menjamin bahwa $r_i < l_{i+1}$ untuk setiap $1 \le i \le c - 1$ dan $l_i \le r_i$ untuk setiap $1 \le i \le c$.

Jika terdapat beberapa solusi, Anda boleh mengeluarkan yang mana saja.

Contoh

Masukan

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

Keluaran

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

Catatan

Pada kasus uji ketiga, di akhir hari pertama, barisan $a$ adalah $[\underline{1, 1, 1, 2}, 0, \underline{1, 1, 1, 2}, 0]$.

Di akhir hari kedua, barisan $a$ adalah $[\underline{1, 2}, 1, 2, 0, \underline{1, 2}, 1, 2, 0]$.

Jelas bahwa setelah dua hari, $a_i \equiv b_i \pmod 2$. Dapat dibuktikan bahwa hal ini tidak dapat dicapai dalam satu hari.

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.