#P14884. [OOI2022预选赛long]Заработок без вложений无本赚钱

[OOI2022预选赛long]Заработок без вложений无本赚钱

题目描述

青蛙 Klava 听说了一种创新型加密货币 MMMcoin,并认为这是一个赚钱的好机会。

一个 MMMcoin 账户由 kk 个钱包组成,钱包编号为 11kk。记第 ii 个钱包中的硬币数量为 aia_i。初始时,所有 aia_i 都等于 00

MMMcoin 系统支持两种钱包操作:

  1. 使某个钱包中的金额增加 11。也就是对选定的 ii,执行:

    ai=ai+1.a_i = a_i + 1.
  2. 把编号不超过 ii 的所有钱包金额之和赋给第 ii 个钱包。也就是对选定的 ii,执行:

    ai=a1+a2+cdots+ai.a_i = a_1+a_2+\\cdots+a_i.

Klava 考虑 tt 个相互独立的赚钱场景。在第 ii 个场景中,她希望在任意一个钱包中得到恰好 nin_i 枚硬币,并且使用的操作次数不超过 qq

可以证明,在给定限制下这总是可能做到。请你构造操作方案。

输入格式

第一行输入三个整数 k,q,tk,q,t,分别表示钱包数量、操作次数上限、场景数量。

接下来 tt 行,每行输入一个整数 nin_i。保证所有 nin_i 互不相同。

输出格式

对于每个场景,先输出一个整数 kik_i,表示该场景中使用的操作次数。

接下来输出 kik_i 行,每行输出一个操作,格式如下:

  • 0 i:表示对第 ii 个钱包执行 ai=ai+1a_i=a_i+1
  • 1 i:表示对第 ii 个钱包执行 ai=a1+a2+cdots+aia_i=a_1+a_2+\\cdots+a_i

每个场景的操作数必须不超过 qq,并且最终必须存在某个钱包的金额恰好为对应的 nin_i

数据范围

对于所有测试数据:

1k100,1 \le k \le 100, 1q100,1 \le q \le 100, 1t5000,1 \le t \le 5000, 1ni1000000.1 \le n_i \le 1000000.

保证所有 nin_i 两两不同。

样例

输入

100 100 3
1
2
3

输出

1
0 1
3
0 1
1 2
1 2
4
0 1
0 3
0 2
1 3

评分方式

测试点分为 3 组。只有通过某一组的全部测试,并通过该组依赖的必要组,才能获得该组分数。

组别 分数 附加限制 必要组 说明
0 样例测试
1 25 k=100, q=100, t=100, ni100k=100,\ q=100,\ t=100,\ n_i \le 100 0
2 32 k=11, q=40, t=1000, ni1000k=11,\ q=40,\ t=1000,\ n_i \le 1000 0, 1
3 43 k=10, q=40, t=5000, ni1000000k=10,\ q=40,\ t=5000,\ n_i \le 1000000 0, 1, 2