Editorial for RGPC '17 P3 - Intercept
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
The conceptually simplest method of expanding using the distributive property will be described here. Firstly, we can store the coefficients of the terms in arrays. Save the first factor in an array (factors of polynomial functions take the form , and in this case, the coefficient of will always be ), and then iterate through the factors.
For each factor, call the function , where is the previous result of expansion (or the first array), and is the new array . In this function, we will use a nested for loop, where the outer loop iterates through and the inner loop iterates through . In each iteration, multiply by , and then add that value to a third array (the resulting expression) at the position . Note that the length of should be greater than and , depending on their degrees.
Lastly, to determine the leading coefficient, substitute the values of the known point into the function. The recommended way of doing this would be to substitute the known value as you loop through the terms, then dividing the known value by the result, because substituting into standard form and using pow()
may result in floating-point inaccuracies. Remember to multiply all coefficients by the leading coefficient before outputting.
Time complexity:
Comments