模拟 · 例2-多项式输出
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}给定一元 n 次多项式

f(x)=a_nx^n+a_{n-1}x^{n-1}+\dots+a_1x+a_0

\hspace{15pt}其中 a_n\neq0,系数 a_i\ (0\leqq i\leqq n) 满足 -100\leqq a_i\leqq100

\hspace{15pt}请按如下规则将多项式输出为字符串:
\hspace{23pt}\bullet\, 从高次到低次依次输出;
\hspace{23pt}\bullet\, 系数为 0 的项完全省略
\hspace{23pt}\bullet\, 当系数为 1-1 且次数 \geqq1 时,省略系数的绝对值 1
\hspace{23pt}\bullet\, 次数为 0 仅输出常数;次数为 1 输出 ``x``;次数 \geqq2 输出 ``\text{ x^k }``;
\hspace{23pt}\bullet\, 首项若系数为正,不输出前导 ``+``;后续正系数项前需加 ``+``,负系数项加 ``-``。

输入描述:

\hspace{15pt}第一行输入整数 n\left(1\leqq n\leqq100\right),表示多项式次数。
\hspace{15pt}第二行输入 n+1 个整数 a_0,a_1,\dots,a_n,依次为各项系数。

输出描述:

\hspace{15pt}在一行输出格式化后的多项式字符串。
示例1

输入

复制
5
100 -1 1 -3 0 10

输出

复制
100x^5-x^4+x^3-3x^2+10
示例2

输入

复制
3
-50 0 0 1

输出

复制
-50x^3+1