問題の説明:
タイトル説明
以下に使用可能な一つの元nnnの順序多項式手段:
F(X)= anxn +-の1xN-1 +⋯+ A1X + A0、≠0F(X)= a_nx ^ N + A_ {N-1} X ^ {N-1} + \ cdots + a_1x + A_0 、NE 0 F(X)\ A_N = XN +-1 XN-1 +⋯+ A1 X + A0、≠0
ここで、aixia_ix ^ IAI xiが、それは係数III次項呼ばaia_iai III次の項を参照さ。単変量多項式乗算器の数は、次の形式で指定された多項式の必要な出力が得られます。
-
多項式の引数は周波数の高い順に左から右にX XX、多項式与えられます。
-
多項式は、係数がないだけで000エントリが含まれています。
-
「 - 」冒頭記号NNN回多項式の係数が正であれば、それは多項式「+」記号、NNN回多項式の係数が負の場合、多項式Aの先頭に表示されません。
「 - 」、「+」またはしない最高次の項のそれぞれについて、前の項目とのこの接続を署名、この係数は、正または負の係数です。この係数の絶対値を表す正の整数が続く(以上000倍、用語場合、係数の絶対値は、111である出力111は不要です)。XXX XX X BB bが指数である場合、インデックスは、直ちに次の「xbx ^ BXB」に、指数部分111よりも大きい場合、XXX指数は111であった場合、フォームの次のインデックス部分直ちに「XXX」を、XXXインデックスが000である場合にのみ出力係数とすることができます。
余分なスペースのない多項式、多項式始まり、終わり、。
入力形式
222ライン入力の合計
第一行111の整数、NNN、単変量多項式表現の数。
第二行は有するN個の第1整数N-IIIを表す各2つの区画整数との間の空間を持つ+ 1 N-1N-I + 1次項係数+、+ + 1、N + 1つの整数1N、オープン。
出力フォーマット
出力コモン線111、トピック別多項式の出力フォーマット。
サンプル入力と出力
入力#1
5 100 -1 1 -3 0 10
出力#1
100X ^ 5-X ^ 4 + X ^ 3-3x ^ 2 + 10
入力#2
3 -50 0 0 1
出力#2
-50x ^ 3 + 1
説明/ヒント
NOIP 2009最初の質問の全体集合
データの100%まで、0≤n≤1000\ルN \ル1000≤n≤100、-100≤-100 \ル-100≤係数≤100\ル100≤100
基本的な考え方:
バラエティ他にあれば。しかし、私はあまりにもナイーブでした。。
問題の解決策を見て、大規模な神がいるすべてのケースで一緒に考慮されます。
様々な文字の結果のシーケンスの各々の出力は、もし設定手順、次いで印刷されます。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a;
cin>>n;
for(int i=n;i>=0;i--){
cin>>a;
if(a){ // 判0系数
if(i!=n&&a>0)cout<<"+"; // 根据正负、是否为最高此项决定加号
if(abs(a)>1||i==0)cout<<a; // 输出系数(系数不为正负1或指数为0)
if(a==-1&&i)cout<<"-"; // -1系数特判,常数项已特判
if(i>1)cout<<"x^"<<i; // 二次及以上输出指数
if(i==1)cout<<"x"; // 一次项
}
}
}