#include #include #include

using namespace std;

struct Term { int exponent; int coefficient; };

void dividePolynomials(vector& A, vector& B, vector& Q, vector& R) { int m = A.size(); int n = B.size();

while (m >= n) {
    int q = A[0].coefficient / B[0].coefficient;
    int e = A[0].exponent - B[0].exponent;
    
    Q.push_back({e, q});
    
    for (int i = 0; i < n; i++) {
        A[i].coefficient -= B[i].coefficient * q;
    }
    
    while (!A.empty() && A[0].coefficient == 0) {
        A.erase(A.begin());
    }
    
    m = A.size();
}

R = A;

}

int main() { vector A, B, Q, R;

int N;
cin >> N;
for (int i = 0; i < N; i++) {
    int e, c;
    cin >> e >> c;
    A.push_back({e, c});
}

cin >> N;
for (int i = 0; i < N; i++) {
    int e, c;
    cin >> e >> c;
    B.push_back({e, c});
}

dividePolynomials(A, B, Q, R);

if (Q.empty()) {
    cout << "0 0 0.0" << endl;
} else {
    for (int i = 0; i < Q.size(); i++) {
        cout << Q[i].exponent << " " << Q[i].coefficient << " " << fixed << setprecision(1) << static_cast<double>(Q[i].coefficient) << " ";
    }
    cout << endl;
}

if (R.empty()) {
    cout << "0 0 0.0" << endl;
} else {
    for (int i = 0; i < R.size(); i++) {
        cout << R[i].exponent << " " << R[i].coefficient << " " << fixed << setprecision(1) << static_cast<double>(R[i].coefficient) << " ";
    }
    cout << endl;
}

return 0;

原文地址: http://www.cveoy.top/t/topic/hTzB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录