luogu#P7117. Mivik 卷积

Mivik 卷积

题目背景

卷王之王卷穿肠(doge

题目描述

从前有一只 Mivik,他喜欢卷积。他定义两个仅与 xx 有关的多项式函数 f(x)f\left(x\right)g(x)g\left(x\right) 的 Mivik 卷积如下:

$$f\left(x\right)\otimes g\left(x\right)=\sum_{k=0}^{\deg f +\deg g}\max_{i\in [0,\deg f] \land j\in [0,\deg g]\land i+j=k}\left\{\left[x^i\right]f\left(x\right)+\left[x^j\right]g\left(x\right)\right\} x^k $$

其中 degf\deg f 表示 ff 的最高项次数,[xi]f(x)\left[x^i\right]f\left(x\right) 代表 f(x)f\left(x\right) 这一函数中 xix^i 这一项的系数。

请注意,Mivik 卷积是左结合的,也就是说 abc=(ab)ca\otimes b\otimes c=(a\otimes b)\otimes c

Mivik 定义 Mivik 函数为能表示为 f(x)=ax+bf\left(x\right)=ax+b 形式的函数,其中 aabb 均为整数。例如 f(x)=3+2xf\left(x\right)=-3+2x 是 Mivik 函数,而 f(x)=1xf\left(x\right)=\frac{1}{x} 不是。

Mivik 又定义一个函数 f(x)f\left(x\right) 是 simple 的,当且仅当存在一个 Mivik 函数的序列 SS(大小为 S\left|S\right|),使得:

$$f\left(x\right)=S_1\otimes S_2\otimes S_3\otimes\cdots\otimes S_{\left|S\right|}. $$

现在 Mivik 给了你一个多项式函数,问你这个函数是不是 simple 的;如果是,请顺便告诉他任意一种可能的 SS

输入格式

第一行一个正整数 nn,代表这个多项式函数的项数。

第二行 nn 个整数,次数从低到高依次代表这个多项式函数的系数 fif_i。保证最高项系数不为 00

输出格式

如果这个函数不是 simple 的,输出一行 nice

否则,先输出一行 simple,然后接下来一行输出你构造的 SS 的大小 S\left|S\right|。接下来在 S\left|S\right| 行给出你构造的 SS 序列,每行两个整数 aabb,描述一个 Mivik 函数 f(x)=ax+bf\left(x\right)=ax+b

3
2 3 3

simple
2
2 1
1 1

3
97 109 101

simple
2
54 42
47 55

9
9 9 8 2 4 4 3 5 3

nice

提示

样例解释 #1

给定的函数 f(x)=2+3x+3x2f\left(x\right)=2+3x+3x^2 可以由 (2x+1)(x+1)\left(2x+1\right)\otimes\left(x+1\right) 得到。

测试点约束

本题采用捆绑测试。

对于全部数据,有 1n5×1051\le n\le 5\times 10^5108fi108-10^8\le f_i\le 10^8

每个子任务的具体限制见下表:

子任务编号 分值 nn\le
1 5 11
2 22
3 20 2020
4 30 50005000
5 40 5×1055\times 10^5

本题读入输出量较大,请使用较快的读入输出方式。