#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> coeff(n +
1); // 存n次项到0次项的系数(coeff[0]是n次项,coeff[n]是0次项)
for (int i = 0; i <= n; i++) {
cin >> coeff[i];
}
// 1. 处理最高次项(第一个项,控制开头的负号)
int c = coeff[0];
int t = n;
if (c < 0) {
cout << "-"; // 开头的负号:系数为负,先输出-
c = -c; // 取绝对值,后续按正数处理
}
// 处理最高次项的系数
if (c != 1 ||
t == 0) { // 系数不是1,或次数是0(常数项),才输出系数
cout << c;
}
// 处理最高次项的次数
if (t > 1) {
cout << "x^" << t;
} else if (t == 1) {
cout << "x";
}
// 注意:t=0是常数项,这里次数不输出
// 2. 处理剩下的项(从n-1次到0次)
for (int i = 1; i <= n; i++) {
c = coeff[i];
t = n - i; // 当前项的次数
if (c == 0) {
continue; // 系数为0,跳过这个项
}
// 处理符号:非第一项,正系数输出+,负系数输出-
if (c > 0) {
cout << "+";
} else {
cout << "-";
c = -c;
}
// 处理系数
if (c != 1 || t == 0) {
cout << c;
}
// 处理次数
if (t > 1) {
cout << "x^" << t;
} else if (t == 1) {
cout << "x";
}
// t=0是常数项,次数不输出
}
cout << endl;
return 0;
}