QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#506. 禮物

Statistics

Alan 在生日那天收到 Bekzhan 送的一份特別禮物。這份禮物被數學鎖鎖住了。

鎖上有 $N$ 個數,位置編號為 $1$ 到 $N$,一開始全都等於零。在一次操作中,Alan 可以選擇一個整數 $X$($1\le X$),以及鎖上 $K$ 個不同的位置 $1\le i_1,i_2,\ldots,i_K\le N$,然後將位置 $i_1,i_2,\ldots,i_K$ 上的數都加上 $X$。Bekzhan 也告訴了他開鎖所需的數列 $A_1,A_2,\ldots,A_N$。數的順序很重要。

Alan 解決不了這個問題。請幫他打開鎖,或判定不存在解。

注意,你不需要最小化操作次數。不過,Alan 不想總共選擇超過 $3000000$($3\cdot10^6$)個位置。也就是說,若 $M$ 是方案的操作次數,且 $M\cdot K\le3\cdot10^6$,這個方案才會被視為正確,否則不正確。

輸入格式

第一行包含兩個正整數 $N$ 和 $K$($2\le K\le N\le10^6$,$N\cdot K\le2\cdot10^6$),分別表示鎖上數列的長度和每次操作可以選擇的位置數。

第二行包含 $N$ 個以單一空格分隔的正整數 $A_1,A_2,\ldots,A_N$(對所有 $1\le i\le N$,$1\le A_i$,且 $\sum_{i=1}^{N}A_i\le10^{18}$),表示開鎖所需的數列。

輸出格式

如果不存在解,輸出「-1」(不含引號)。否則,第一行輸出操作次數 $M$。接下來的 $M$ 行中,第 $j$ 行先輸出 $X_j$,再輸出 $K$ 個不同的數 $i_{j,1},i_{j,2},\ldots,i_{j,K}$,分別表示第 $j$ 次操作的增加量和要增加的位置。

子任務

本題包含五個子任務,每個子任務中的測試都滿足題目敘述中的限制:

  1. $\sum_{i=1}^{N}A_i\le10$,$K=2$。配分為 7 分。
  2. $\sum_{i=1}^{N}A_i\le10^5$,$K=2$。配分為 11 分。
  3. $\sum_{i=1}^{N}A_i\le10^5$。配分為 12 分。
  4. $A_1=A_2=\cdots=A_N$。配分為 19 分。
  5. 限制與題目敘述相同。配分為 51 分。

範例

輸入格式 1

4 2
2 3 3 2

輸出格式 1

3
2 3 1
1 3 2
2 2 4

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.