CF1687E Become Big For Me

题目描述

> 『来吧,让我们构筑起一个不会遗弃弱者的乐园吧!』——少名针妙丸&鬼人正邪,《东方辉针城》 针妙丸有一个万宝槌,可以将物体变大或者变小。她现在在对一个序列 $a$ 测试这一功能。具体而言,她有一个实数 $v=1$,她希望在不超过 $10^5$ 次操作后,将 $v$ 变为 $\gcd \limits_{i \neq j} \{a_i \times a_j\}$。其中,$\gcd \limits_{i \neq j} \{a_i \times a_j\}$ 指的是,序列 $a$ 中两个不同元素相乘得到的所有乘积的最大公约数。 在每一次操作中,针妙丸可以选择序列 $a$ 中的一个子序列 $b$,并且对其做如下两种操作中的一个: - 放大:令 $v \leftarrow v \times \operatorname{lcm(b)}$; - 缩小:令 $v \leftarrow \dfrac{v}{\operatorname{lcm(b)}}$。 其中,$\operatorname{lcm(b)}$ 指的是序列 $b$ 中所有元素的最小公倍数。此外,她不要求 $v$ 一定是个整数,也就是说执行缩小操作的时候,$v$ 可以不是 $\operatorname{lcm(b)}$ 的倍数。 更进一步地说,针妙丸希望她选取的所有子序列 $b$ 的长度不超过 $10^6$,即 $\sum |b| \leq 10^6$。请你为她找到一种操作方案。注意,您无需最小化任何东西。

输入格式

第一行输入一个正整数 $n(2 \leq n \leq 10^5)$,表示序列 $a$ 的长度。 第二行输入 $n$ 个正整数 $a_1,a_2,\dots a_n(1 \leq a_i \leq 10^6)$。 保证最后的答案一定存在。

输出格式

第一行输出一个正整数 $k$,表示操作次数。 第二行开始往下输出 $k$ 行,每行包含若干个整数。对于每一行,首先输出两个整数 $f \in \{0,1\}$ 和 $p$,其中 $f=0$ 表示执行放大操作,而 $f=1$ 表示执行缩小操作。$p$ 表示所截取的子序列 $b$ 的长度。接下来是 $p$ 个正整数 $i_1,i_2,\dots,i_p(1 \leq i_1

说明/提示

Test case 1: $ \gcd\limits_{i\ne j}\{a_i\cdot a_j\}=\gcd\{60,90,150\}=30 $ . Perform $ v = v\cdot \operatorname{lcm}\{a_1,a_2,a_3\}=30 $ . Test case 2: $ \gcd\limits_{i\ne j}\{a_i\cdot a_j\}=8 $ . Perform $ v = v\cdot \operatorname{lcm}\{a_4\}=16 $ . Perform $ v = \frac{v}{\operatorname{lcm}\{a_1\}}=8 $ .