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

题目描述

\hspace{15pt}转译自 [NOIP2009普及组] 多项式输出 。
\hspace{15pt}一元 n 次多项式可用如下的表达式表示:
\hspace{15pt}f(x)=a_n x^n + a_{n-1} x^{n-1} + ... + a_1 x + a_0;\ a_0 \neq 0
\hspace{15pt}其中,a_i \times x^i 称为 i 次项,a_i 称为 i 次项的系数。

\hspace{15pt}现在,对于给出的一元 n 次多项式各项的系数 \{a_1, a_2, ..., a_n\} ,请按照如下规定的格式要求输出该多项式:
\hspace{23pt}\bullet\,多项式中自变量为固定为字符 \texttt{ ,从左到右按照次数递减顺序输出多项式;
\hspace{23pt}\bullet\,系数为 0 的项不输出;
\hspace{23pt}\bullet\,如果多项式 n 次项系数为正,则多项式开头不出现 \texttt{ 号,如果多项式 n 次项系数为负,则多项式以 \texttt{ 号开头;
\hspace{23pt}\bullet\,对于不是最高次的项,以 \texttt{ 号或者 \texttt{ 号连接此项与前一项,分别表示此项系数为正或者系数为负;
\hspace{23pt}\bullet\,系数 a_i 为一个正整数,表示此项系数的绝对值(特别地,如果一个高于 0 次的项,其系数的绝对值为 1,则无需输出 1);
\hspace{23pt}\bullet\,如果 x 的指数大于 1,则接下来紧跟的指数部分的形式为 \texttt{,其中 bx 的指数;如果 x 的指数为 1,则接下来紧跟的指数部分形式为 \texttt{;如果 x 的指数为 0,则仅需输出系数即可;
\hspace{23pt}\bullet\,多项式中,多项式的开头、结尾不含多余的空格。

\hspace{15pt}除了上文中使用引号引起的变量和符号为固定内容,其余的变量均需要依据输入内容的变化而变化。

输入描述:

\hspace{15pt}第一行输入一个整数 n \left( 1 \leq n \leq 100 \right) 代表多项式的次数;
\hspace{15pt}第二行输入 n+1 个整数 a_0, a_1, ..., a_n \left( -100 \leq a_i \leq 100 \right) 代表多项式各项的系数。

输出描述:

\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