AB

秋风拂过发梢  •  2个月前


666

include

include

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;

}


评论:

请先登录,才能进行评论