Input
The first line contains a single integer M.
Next M lines contain two integers Pi, Ci separated with space, where Pi denotes power and Ci denotes co-efficient of Pi for polynomial A.
After that next line contains a single integer N. Next N lines contain two integers Pj, Cj separated with space, where
Pj denotes power and Cj denotes co-efficient of Pj for polynomial B.
Output
Print the addition of polynomials A and B.
The format for printing polynomials is: Cix^Pi + Ci-1x^Pi-1 + ... + C1x + CO, where Pi's are powers in decreasing order, Ci is co-efficient and CO is constant, there will be space before and after the plus or
minus sign. If co-efficient is zero then don't print the term. If the term with highest degree is negative, the term should be
represented as -Cix^Pi. For the term where power is 1 represent it as C1x instead of C1x^1. If the degree of polynomial is zero and the constant term is also zero, then just print 0 to represent the polynomial.
# Add polynomials
def read_polynom():
    n = int(input())
    p = {}
    for i in range(n):
        L = input().split()
        Pi = int(L[0])
        Ci = int(L[1])
        p[Pi] = Ci
    return p
def add_polynomilas(p, q):
    r = {}
    Pis = set(p).union(q)
    for Pi in Pis:
        if Pi in p:
            Ci = p[Pi]
        else:
            Ci = 0.0
        if Pi in q:
            Ci += q[Pi]
        if Ci != 0.0:
            r[Pi] = Ci
    return r
def tostring_polynom(p):
    res = ''
    first = True
    for Pi in sorted(p, reverse=True):
        Ci = p[Pi]
        if first:
            if Ci == 0 and Pi == 0:
                return '0'
           Â
            if Ci == 1 and Pi != 0:
                pass
            elif Ci == -1 and Pi != 0:
                res = '-'
            else:          Â
                res = f'{Ci}'
            first = False
           Â
        else:       Â
            if Ci > 0:
                res += ' + '
            elif Ci < 0:
                res += ' - '
            else:
                continue
            res += f'{abs(Ci)}'
       Â
        if Pi == 0:
            continue
        if Pi == 1:
            res += 'x'
        else:
            res += f'x^{Pi}'
    return res
def main():
    p = read_polynom()
    q = read_polynom()
    r = add_polynomilas(p, q)
    print(f'Add {tostring_polynom(p)} to {tostring_polynom(q)}')
    print(f'results {tostring_polynom(r)}')
if __name__ == '__main__':
    main()
Comments
Leave a comment