秋风拂过发梢 • 2个月前
666
using namespace std;
struct Term {
int coef;
int exp;
};
int main() {
int k1, k2;
cin >> k1 >> k2;
vector<Term> poly1;
for (int i = 0; i < k1; ++i) {
int coef, exp;
cin >> coef >> exp;
poly1.push_back({coef, exp});
}
vector<Term> poly2;
for (int i = 0; i < k2; ++i) {
int coef, exp;
cin >> coef >> exp;
poly2.push_back({coef, exp});
}
vector<Term> result;
int i = 0, j = 0;
while (i < poly1.size() && j < poly2.size()) {
if (poly1[i].exp < poly2[j].exp) {
result.push_back(poly1[i]);
++i;
} else if (poly1[i].exp > poly2[j].exp) {
result.push_back(poly2[j]);
++j;
} else {
int sum_coef = poly1[i].coef + poly2[j].coef;
if (sum_coef != 0) {
result.push_back({sum_coef, poly1[i].exp});
}
++i;
++j;
}
}
while (i < poly1.size()) {
result.push_back(poly1[i]);
++i;
}
while (j < poly2.size()) {
result.push_back(poly2[j]);
++j;
}
if (result.empty()) {
cout << "0";
} else {
for (size_t idx = 0; idx < result.size(); ++idx) {
if (idx != 0) {
cout << "+";
}
cout << result[idx].coef << "x^" << result[idx].exp;
}
}
cout << endl;
return 0;
}
评论:
请先登录,才能进行评论