import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		int a[]=new int[n+1];
		for (int i = 0; i < a.length; i++) {
			a[i]=scanner.nextInt();
		}
		if(a[0]<0)System.out.print("-");
		for (int i = 0; i < a.length; i++) {
			if(a[i]==0) {
				if(i==a.length-1) {
					
				}else {
					if(a[i+1]>0) {
						System.out.print("+");
					}else if(a[i+1]<0) {
						System.out.print("-");
					}
					
				}
				continue;
			
			}
			if(a[i]==1||a[i]==-1) {
				if(i==a.length-1) {
					System.out.print("1");
				}
			}else {
				System.out.print((int)Math.abs(a[i]));
			}
			if(i==a.length-1) {
				
			}else {
				if(n-i==1) {
					System.out.print("x");
				}else {
					System.out.print("x^");
					System.out.print(n-i);
				}
				
			}
			if(i==a.length-1) {
				continue;
			}else {
				if(a[i+1]>0) {
					System.out.print("+");
				}else if(a[i+1]<0) {
					System.out.print("-");
				}
				
			}
			
		}

	}

}

这题我就是纯模拟,把每一种情况都要考虑进去,首先要考虑第一项的符号,这个最好是在循环开始前进行,然后要把每一项拆成符号+系数绝对值+x+指数的形式,每个部分都需要判断各种情况。然后就是要注意当使用a[i+1]时,一定要判断是否是最后一项