#L3198. 「eJOI2019」塔

「eJOI2019」塔

题目描述
本题译自 eJOI2019 Problem D. Tower

有一个数塔,一开始上面有一个数 11,接下来你可以每次选一个区间 [l,u][l, u]1lun1\le l\le u\le n),其中 nn 是数塔当前有几个数,将数塔从下往上数的第 ll 个到第 uu 个求和,然后放在数塔的顶部。请你每次用尽量少的操作次数,让数塔的顶部的数为 qq

你总共需要回答 TT 组询问。


输入格式
第一行一个正整数 TT,表示数据组数。
接下来每个数据一行一个正整数 qq,表示要达到的数。


输出格式
对于每个 qq 按顺序输出:
第一行输出一个整数 ss0s10000\le s\le 1000),表示你所使用的步数。
接下来 ss 行中,每行输出两个正整数 l,ul, u,表示接下来取出数的区间。


样例
输入

3
2
3
7

输出

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

第一个数据是操作得到数字 22。第一步选取区间 [1,1][1, 1] 得到 11,第二步选取区间 [1,2][1, 2] 得到 1+1=21+1=2

第二个数据并不只有唯一解,注意到以下方案也可以通过三步得到 33

1 1
1 2
2 3

数据范围与提示
对于 100%100\% 的数据,保证 1T103,1q10181\le T \le 10^3, 1\le q\le 10^{18}


评分方式
对于每一组数据:

  • 如果对于每组询问,你均达到了最优解,你获得满分。
  • 如果你给出的答案并不都是最优,取每组询问的
    $10\% + \frac{\text{minimum steps}}{\text{solution steps}} \times 70\%$ 的最小值的分数。
  • 如果有一组答案不符合要求,你获得 00 分。