const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { // Write your code here let params = []; while ((line = await readline())) { let tokens = line.split(" "); // let a = parseInt(tokens[0]); // let b = parseInt(tokens[1]); // console.log(a + b); params.push(tokens); } // console.log(params) let n = parseInt(params[0][0]); let nums = params[1].map((v) => parseInt(v)); // console.log(n,nums) let results = []; for (let i = 0; i < nums.length; i++) { if (nums[i] != 0) { // 系数 let x_n = nums.length - i - 1 == 1 ? "" : `^${nums.length - i - 1}`; if (i == 0) { if (nums[i] == 1) { results.push(`x${x_n}`); } else if (nums[i] == -1) { results.push(`-x${x_n}`); } else results.push(`${nums[i]}x${x_n}`); } else { // 最后一个 if (i == nums.length - 1) { if (nums[i] > 0) { results.push(`+${nums[i]}`); } else { results.push(`${nums[i]}`); } } else { if (nums[i] > 0) { if (nums[i] == 1) { results.push(`+x${x_n}`); } else results.push(`+${nums[i]}x${x_n}`); } else { if (nums[i] == -1) { results.push(`-x${x_n}`); } else { results.push(`${nums[i]}x${x_n}`); } } } } } } console.log(results.join("")); })();