题库练习 「eJOI2019」塔
← 上一题 下一题 →

A5890 | 「eJOI2019」塔

时间限制2s
内存限制100MB
通过 / 提交0/0

题目描述

**本题译自 [eJOI2019](http://ejoi2019.si/) Problem D.** ***[Tower](https://www.docdroid.net/vf2Ffdm/tower-isc-pdf)***

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

你总共需要回答 $T$ 组询问。

输入格式

第一行一个正整数 $T$,表示数据组数。

接下来每个数据一行一个正整数 $q$,表示要达到的数。

输出格式

对于每个 $q$ 按顺序输出:
- 第一行输出一个整数 $s(0\le s\le 1000)$,表示你所使用的步数。
- 接下来 $s$ 行中,每行输出两个正整数 $l, u$,表示接下来取出数的区间。

输入输出样例

输入 #1
3
2
3
7
输出 #1
2
1 1
1 2
3
1 1
2 2
1 3
4
1 1
1 2
2 3
1 4
C++ 编辑器
输入
输出