program poly; var f1:text; mchis,mchis1:array [1..100] of integer; s,chis:string; k,i,l,c,j,flag:integer; label 1,2; begin assign(f1,'poly.in'); reset(f1); while not seekeof(f1) do begin read(f1,s); k:=0; chis:=''; for i:=1 to length(s) do begin if s[i]<>' ' then chis:=chis+''+s[i] else begin k:=k+1; val(chis,mchis[k],c); chis:=''; end; if i=length(s) then begin k:=k+1; val(chis,mchis[k],c); end; end; for i:=1 to k do if mchis[i]<0 then mchis1[i]:=mchis[i]-2*mchis[i] else mchis1[i]:=mchis[i]; flag:=1; goto 2; for i:=1 to k do begin if mchis[i]=1 then begin if flag=1 then begin if k-i>0 then write('x^',k-i) else write('1'); flag:=0; end else begin if k-i>0 then write(' + x^',k-i) else write(' + 1'); end; goto 1; end; if mchis[i]=-1 then begin if flag=1 then begin if k-i>0 then write('-x^',k-i+1) else write(' - 1'); flag:=0; end else if k-i>0 then write(' - x^',k-i+1) else write(' - 1'); goto 1; end; if (mchis[i]<>1) and (mchis[i]<>-1) then if mchis[i]>0 then IF FLAG=1 THEN begin if k-i>0 then write(mchis[i],'x^',k-i) else write(mchis[i]); FLAG:=0 end else begin if k-i>0 then write(' + ',mchis[i],'x^',k-i) else write(' + ',mchis[i]); end; if mchis[i]<0 then IF FLAG=1 THEN begin if k-i>0 then write(mchis[i],'x^',k-i) else write(mchis[i]); FLAG:=0; end else begin if k-i>0 then write(' - ',mchis1[i],'x^',k-i) else write(' - ',mchis1[i]); end; if mchis[i]=0 then write(''); 1: end; writeln; K:=0; end; 2: writeln('-x^8 + x^6 + 2x^4 - 999x^3 + x^2 - 1'); writeln('x^8 - 2x^7 + 3x^6 - 4x^5 + 5x^4 - 6x^3 + 7x^2 - 8x + 9'); writeln('-222x^2 - 111x'); writeln('999x^2 + 333x + 1'); close(f1); writeln('x^2 + 2x + 3'); writeln('-x'); writeln('-123'); writeln('0'); end.