```         FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '88

1.1  Write a program to first clear the screen and then print the
phrase:
THE BEST COMPUTER CONTEST!

ten times on the first ten consecutive lines on the screen, each
beginning in column 1.

1.2  Write a program to determine if a given number is an INTEGER
value or only a REAL value.  Example:

INPUT: Enter #: 2.0
OUTPUT: INTEGER

INPUT: Enter #: -1.5
OUTPUT: REAL

1.3  Assume that the surface of a floppy diskette has 40 tracks,
and there are 8 sectors per track with 512 bytes/sector.  Write a
program to determine the number of bytes of information that is on
the surface of N floppy diskettes, where N is input as a positive
integer.  Example:

INPUT: Enter N: 4

OUTPUT: 655360

1.4  A complete computer consists of a CPU, PRIMARY memory,
SECONDARY memory, an INPUT device, and an OUTPUT device.  Given
four of the computer's components as input, determine which
component is missing.  Example:

INPUT: Enter component: SECONDARY
Enter component: OUTPUT
Enter component: CPU
Enter component: INPUT

OUTPUT: PRIMARY

1.5  Write a program to outline the perimeter of the screen with
asterisks (*) and to divide the screen into four approximately
congruent rectangles using *'s.  Print the numbers 1, 2, 3, and 4
centered in each rectangle as shown below in miniature.

OUTPUT: *************
*     *     *
*  1  *  2  *
*     *     *
*************
*     *     *
*  3  *  4  *
*     *     *
*************

1.6  Many times a long computer term will be abbreviated by
forming an acronym:  Electronic Numerical Integrator And
Calculator becomes ENIAC.  Write a program to make acronyms for
given sets of words.  Each word in a set will be separated by a
space.  Acronyms are formed from the first letter of each word in
a set.  Example:

INPUT: Enter words: RANDOM ACCESS MEMORY
OUTPUT: RAM

INPUT: Enter words: CENTRAL PROCESSING UNIT
OUTPUT: CPU

1.7  Computers are often classified into three categories:  MICRO
computers, MINI computers, and MAINFRAME computers.  MICRO
computers are small enough to be placed on a small table and are
often used during high school computer programming contests.  A
MINI computer's CPU and main memory are usually placed on the
floor in a case and stand 3 to 5 feet high.  MAINFRAME computer
systems usually occupy a large room and can be accessed by more
than one hundred terminals at the same time.  Given the name of a
computer and the type of computer, print out a list of the
computer names in ascending order according to their size.
MAINFRAME is larger than a MINI which is larger than a MICRO.
Three computers, each of a different category, will be entered
(name, then the type of computer).  Example:

INPUT: Enter name: FRED
Enter type: MINI
Enter name: WYLBUR
Enter type: MAINFRAME
Enter name: GEORGE
Enter type: MICRO

OUTPUT: GEORGE
FRED
WYLBUR

1.8  A display in a grocery store will consist of cans stacked on
top of each other with the bottom row having N cans in it and each
row above it having two cans less than the supporting row.  Write
a program to find out how many cans will be needed in the display
if N is input as the number of cans for the bottom row.  N will be
greater than 2.  Example:

INPUT: Enter N: 5
OUTPUT: 9

INPUT: Enter N: 6
OUTPUT: 12

1.9  A queue is a first-in first-out (FIFO) storage.  Objects are
removed from a queue in the same order as they are added.  A
waiting line in a supermarket is an example of a queue.  Write a
program to place numbers on a queue and then retrieve from or add
to the queue.  The user is to enter the option to ADD to the queue
or TAKE from the queue or QUIT.  If the user enters ADD then the
program accepts a value to place on the queue.  If the user enters
TAKE then the first value in the queue is removed and displayed.
If QUIT is entered then the program ends.  Example:

Enter integer: 5
Enter integer: 8
Enter command: TAKE
OUTPUT: 5
Enter integer: 2
Enter command: TAKE
OUTPUT: 8
INPUT: QUIT
OUTPUT: (program terminates)

1.10  Write a program to determine the events of history that
occurred between two dates input.  Use the following DATA
statements in your program (you may store the DATA elements in an
array).  Each DATA statement contains a year of an invention,
person(s) responsible, and invention.  Output must display the
person followed by the word INVENTED and the invention for each
event that is between two years that are input.  The first date
will precede the second date in time.  Example:

DATA 1801,"JOSEPH JACQUARD","PUNCHCARD AND WEAVING LOOM"
DATA 1830,"CHARLES BABBAGE","DESIGN OF ANALYTIC ENGINE"
DATA 1890,"HERMAN HOLLERITH","PUNCHCARD TABULATING MACHINE"
DATA 1944,"HOWARD AIKEN","MARK I"
DATA 1946,"ECKERT AND MAUCHLY","ENIAC"
DATA 1949,"VON NEUMAN","EDVAC"

INPUT: Enter years: 1640, 1820

OUTPUT: BLAISE PASCAL INVENTED ADDING MACHINE
JOSEPH JACQUARD INVENTED PUNCHCARD AND WEAVING LOOM

2.1  Write a program to display a solid diamond of asterisks of
height and length of N, where N is an odd number greater than 1
and less than 22.  The middle row has N asterisks and each
consecutive row differs by 2 asterisks.  The first and last rows
each have one asterisk.  Example:

INPUT:  Enter N: 5

OUTPUT:   *
***
*****
***
*

2.2  Sorting is the arranging of elements of a list into order
based on the value of a particular field within the elements.
There are several algorithms to accomplish the task of sorting
including:  bubble sort, shell sort, and quick sort.  Each sorting
algorithm's efficiency depends upon the number of elements to be
sorted and the particular order in which they are originally
given.  The average number of comparisons needed to sort a list of
N elements is given as:

N * (N-1) / 2                    for BUBBLE SORT
N * ((Log base 2 of N) squared)  for SHELL SORT
N * (Log base 2 of N)            for QUICK SORT

Assuming that the efficiency depends only on the number of
elements in the list, N, determine the efficiency order of the
different sorting algorithms and print them from most efficient to
least efficient.  N will be greater than 2.  Example:

INPUT: Enter N: 128

OUTPUT: QUICK SORT
SHELL SORT
BUBBLE SORT

2.3  When a group of no more than 200 was asked to divide itself
into groups of 2, 1 person was left over.  When asked to divide
into groups of 3, 5, 7, there were 2, 1, and 2 left over
respectively.  Write a program to find out how many people were in
this group and display this number.

2.4  Random numbers between 0 and 9999 can be generated according
to the following method.  Take a 4-digit number as the seed,
square it, and pad 0's at the end (if needed) to make the product
an 8-digit number.  Use the four digits in the middle of the
number as the random number and the next seed.  Write a program to
produce the first 5 random numbers (without leading 0's, if the
number is less than four digits) for a given seed of four digits.
Example:

INPUT: Enter seed: 3571

OUTPUT: 7520      (because 3571 * 3571 = 12 7520 41 )
5504      (because 7520 * 7520 = 56 5504 00 )
2940      (because 5504 * 5504 = 30 2940 16 )
4360      (because 2940 * 2940 = 86 4360 0 pad 0 )
96        (because 4360 * 4360 = 19 0096 00 )

2.5  Data is often transmitted in 8 bit parcels with the first
seven bits being the actual data and the eighth bit being the
"parity bit."  The parity bit is used to detect errors in
transmission.  Each bit is either a 0 or a 1.  Two techniques for
detecting errors are called "odd parity" and "even parity."  The
transmitter uses the eighth bit to make the eight bit parcel
contain an odd number of "1" bits (odd parity) or an even number
of "1" bits (even parity).  If the transmitter uses odd parity but
an even number of "1" bits are received in the transmitted 8 bit
parcel, then an ERROR has occurred.  If even parity is used, but
an odd number of "1" bits are transmitted in the 8 bit parcel then
an ERROR has occurred.  Write a program to determine if a string
of data (of at most 8 characters) contains an ERROR for the
indicated parity which is input as ODD or EVEN.  The program must
also check to see that the string is 8 characters long and
contains only "1"s and "0"s.  Display the message "ERROR" or
"CORRECT" for each input.  Example:

INPUT: Enter bits: 00011101
Enter parity: EVEN
OUTPUT: CORRECT

INPUT: Enter bits: 11111110
Enter parity: ODD
OUTPUT: CORRECT

INPUT: Enter bits: 10101011
Enter parity: EVEN
OUTPUT: ERROR

INPUT: Enter bits: 111X1111
Enter parity: ODD
OUTPUT: ERROR

INPUT: Enter bits: 110
Enter parity: EVEN
OUTPUT: ERROR

2.6  Write a program that calculates the area of a polygon, using
the following formula:

Area = 1/2 * (The absolute value of the following sum):

| X1 Y1 |     | X2 Y2 |         | Xn-1 Yn-1 |     | Xn Yn |
|       |  +  |       | + ... + |           |  +  |       |
| X2 Y2 |     | X3 Y3 |         | Xn   Yn   |     | X1 Y1 |

where X and Y are coordinates of the vertices in the X-Y plane,
and n is the number of vertices.  In words, the AREA is equal to
one-half the absolute value of the sum of the corresponding
determinants of the coordinates of successive vertices.  A
determinant of the form:   | X Y |
| A B |    is defined as X*B - A*Y,
where X,Y and A,B are two successive vertices.  The number of
vertices, n, will be entered followed by n successive integer
coordinates in the X-Y plane.  The area is to be displayed in the
form ##.#.  Example:

INPUT: Enter n: 4
Enter vertex: 1,0
Enter vertex: 2,0
Enter vertex: 2,2
Enter vertex: 0,4

OUTPUT: AREA =  4.0

2.7  Write a program to accept as input a valid MONTH, DAY, and
YEAR between the years 1700 and 1998 inclusive and will display
the date of the day before the given date and the date after the
given date.  A leap year occurs in every year that is divisible by
4 except in those years also divisible by 100.  MONTH, DAY, and
YEAR will be input as positive integers.  The output must be
displayed in the form MM-DD-YYYY, with MM and DD displayed without

INPUT: Enter month, day, year: 3, 1, 1800

OUTPUT: 2-28-1800
3-2-1800

2.8  At the University of South Florida, a student may be
dismissed at the end of a semester for a low grade point average
(GPA).  If the student's Cumulative GPA (CGPA) is ever between 0
and 0.999 then he is immediately dismissed.  If the student's
cumulative GPA is between 1.0 and 1.999 for two consecutive
semesters then the student is dismissed.  The GPA is determined by
assigning points to grades: A-4, B-3, C-2, D-1, F-0.  A grade is
assigned to each class a student takes.  Each class gives from 1
to 5 credit hours.  For a given semester the total number of
points earned is obtained from summing the points earned for each
class, which is obtained by multiplying the grade number by the
number of credit hours for that class.  The GPA is obtained by
dividing the total points earned by the total number of credit
hours taken in that semester.  The CUMULATIVE GPA is similarly
obtained from dividing the total points earned for all semesters
by the total number of credit hours taken in all semesters.
Write a program to accept at most 8 semesters of 4 grades
with the number of credit hours for each class grade.  The program
then calculates and displays the student's semester GPA and
cumulative GPA in the form #.###, rounded to the nearest 0.001.
If the student is dismissed due to a low GPA, then display the
message "STUDENT IS DISMISSED" and then end the program.  The
example INPUT/OUTPUT below is illustrated by calculations within
parenthesis that are not a part of the INPUT/OUTPUT.

Example:

INPUT: Enter grade, credits: A, 3        (points = 4x3 = 12)
Enter grade, credits: B, 3        (points = 3x3 =  9)
Enter grade, credits: C, 2        (points = 2x2 =  4)
Enter grade, credits: F, 4        (points = 0x4 =  0)
(total =        25)

OUTPUT:  GPA= 2.083         (because 25 / (3+3+2+4) = 2.0833)
CGPA= 2.083

INPUT: Enter grade, credits: F, 5
Enter grade, credits: D, 2         (points = 1x2 = 2)

OUTPUT:  GPA= 0.125
CGPA= 0.964           (because (25+2) / (12+5+2+4+5))
STUDENT IS DISMISSED

2.9  Given the elements and their corresponding potentials in DATA
statements as shown below, write a program to display the names of
all pairs of elements which could be used to produce a battery
with voltage equal to the desired VOLTAGE plus or minus the
TOLERANCE.  The desired battery VOLTAGE and a TOLERANCE will be
entered as non-negative real numbers.  A battery can be produced
if the "difference" in half-reaction oxidation potentials of two
elements is less than or equal to the TOLERANCE.  If there are no
pairs that can form a battery, print the message:  "NO BATTERY CAN
BE FORMED". The acceptable pairs must be printed with the first
element starting in column1, the second element in column 12, and
the difference in Potential in column 23 in the form #.##.  The
order of elements is not important.  If there are more than eight
acceptable pairs then the first eight should be printed and the
user is then prompted with the message, "PRESS ANY KEY FOR MORE".
The user then presses a key to see the next eight (or less).  If
there are still more, then the same process should be repeated
until all the pairs have been displayed.

Table of half-reaction oxidation potentials:

DATA  ELEMENT  POTENTIAL
---- --------- ---------
DATA "LITHIUM",+3.05
DATA "SODIUM",+2.71
DATA "ZINC",+0.76
DATA "IRON",+0.44
DATA "TIN",+0.14
DATA "IODINE",-0.54
DATA "SILVER",-0.80
DATA "MERCURY",-0.85
DATA "BROMINE",-1.09
DATA "CHLORINE",-1.36

Example:

INPUT: Enter Desired Voltage, Tolerance: 5, 1.5

OUTPUT: (in any order)
LITHIUM    IODINE     3.59
LITHIUM    SILVER     3.85
LITHIUM    MERCURY    3.90
LITHIUM    BROMINE    4.14
LITHIUM    CHLORINE   4.41
SODIUM     SILVER     3.51
SODIUM     MERCURY    3.56
SODIUM     BROMINE    3.80

PRESS ANY KEY FOR MORE
INPUT: (Press any key)
OUTPUT: (continued in any order)
SODIUM     CHLORINE   4.07

2.10  Three local cross country teams compete in a double dual
race.  Each team consists of seven runners, but only the first
five finishers of a team contribute to that team's score.  As the
runners cross the finish line, gasping for breath, the judge
writes the INITIAL of the runner's team name and the NUMBER
indicating the runner's finishing position, e.g. 1 for 1st, 2 for
2nd and so on.  To find the score for teams A and B and to decide
which of the two wins, the scorekeeper temporarily eliminates all
of C's positions, and then repositions the runners from A and B
into places 1 through 14.  The team's score consists of the sum of
the places of their first five runners.  The lower team score
wins.  If there is a tie then the team whose sixth runner crossed
the finish line first is the winner.

Write a program that computes the score for each pair of three
teams and determines the winner of each pair (pairs may be
displayed in any order).  The program must allow the user to
assign all 21 runners' team INITIAL to finishing places.  Team
initials can be any letter in the alphabet.  Example:

INPUT: Place 1: A                     |   Example of
Place 2: B                     |   repositioning
Place 3: A                     |   teams A and B:
Place 4: B                     |
Place 5: A                     |   1: A
Place 6: B                     |   2: B
Place 7: C                     |   3: A
Place 8: C                     |   4: B
Place 9: C                     |   5: A
Place 10: C                    |   6: B
Place 11: B                    |   7: B
Place 12: A                    |   8: A
Place 13: C                    |   9: B
Place 14: B                    |  10: B
Place 15: C                    |  11: A
Place 16: B                    |  12: A
Place 17: A                    |  13: B
Place 18: A                    |  14: A
Place 19: C
Place 20: B
Place 21: A

OUTPUT: TEAM A: 28 POINTS
TEAM B: 28 POINTS
TEAM B WINS!

TEAM A: 25 POINTS
TEAM C: 31 POINTS
TEAM A WINS!

TEAM B: 24 POINTS
TEAM C: 31 POINTS
TEAM B WINS!

3.1  Write a program to put a set of N real numbers in numerical
order, smallest to largest.  However, the magnitude of the digits,
from smallest to largest, is defined to be 0,8,1,2,5,4,3,9,7,6.
Therefore, 810 is less than 172, and -1.5 is less than -8.5.
Example:

INPUT: Enter N: 5
Enter #: 61.2
Enter #: 801
Enter #: -5.98
Enter #: -4.5
Enter #: 99.99

OUTPUT: -4.5
-5.98
99.99
61.2
801

3.2  A bank can make change for a given amount of money in many
different ways.  For example, there are 4 ways to make change for
10 cents:  10 pennies, 5 pennies and 1 nickel, 2 nickels, or 1
dime.  Write a program to display the total number of ways that
change can be made with an input AMOUNT of money using pennies,
nickels, dimes, and quarters.  AMOUNT will be input in dollars and
will be no greater than 2.00.  Example:

INPUT: Enter AMOUNT: 0.16

OUTPUT: 6

3.3  Write a program to determine if a given point and/or a given
cube in space lie/lies "inside" another given cube (CUBE2).  The
term "inside" includes points or faces shared.  The two
coordinates of a diagonal of each of the cubes will be input as
real numbers in the X-Y-Z coordinate system.  Each cube will have
its edges parallel to either the X, Y, or Z plane.  Output must
contain two sentences of the form:

POINT / 1ST CUBE    LIES / DOES NOT LIE    INSIDE 2ND CUBE

Example:

INPUT: Enter point: 3,4,5
Enter cube1 diagonal point1:  0,0,0
Enter cube1 diagonal point2:  3,3,3
Enter cube2 diagonal point1: -1,0,0
Enter cube2 diagonal point2:  4,4,4

OUTPUT: POINT DOES NOT LIE INSIDE 2ND CUBE
1ST CUBE LIES INSIDE 2ND CUBE

3.4  Given a set of N letters (where N is between 2 and 5,
inclusive), display all the DISTINGUISHABLE permutations of the
letters, in alphabetical order.  Also display the total number of
distinguishable permutations.  Note that some of the letters
entered could be the same.  Example:

INPUT: Enter letters: CABA

OUTPUT: AABC
AACB
ABAC
ABCA
ACAB
ACBA
BAAC
BACA
BCAA
CAAB
CABA
CBAA
TOTAL= 12

3.5  Write a program to print a snake (a trail of 25 asterisks
'*') centered on the screen.  Upon hitting appropriate keys (I--
up, J--left, K--right, and M--down), the snake's head moves in the
appropriate direction while the rest of the snake slithers along
the same right angle paths.  The snake is to move CONTINUOUSLY in
the designated direction UNTIL a new directional key is hit.  The
snake will be 25 asterisks long throughout the entire run;  Do not
leave a sketched path.  The snake cannot go backwards, e.g. if it
is going to the right, then its next direction cannot be to the
left.  The snake continues moving until it runs into itself or it
runs off the screen or a non-directional key is pressed.

3.6  Write a program to solve a pair of linear equations entered
as strings without spaces.  The equation will be in one of two
forms:  AX+BY=C or AX+BY+C=0 where A, B, and C are integers.
Assume that the constant value "1" for A and B will be omitted.
(e.g. "X" or "Y" instead of "1X" or "1Y").  For "-1", only a "-"
will be used.  All unnecessary "+" symbols will be omitted.  If a
unique solution exists then display the solution in the following
format:

XSOLUTION= #.#    YSOLUTION= #.#

If no solution exists then print NO UNIQUE SOLUTION EXISTS.
Example:

INPUT: Enter equation 1: X+Y=0
Enter equation 2: 2X-3Y-4=0

OUTPUT: XSOLUTION= 0.8    YSOLUTION= -0.8

3.7  Write a program to find all semi-perfect numbers less than
35.  A number is said to be semi-perfect if there exists a subset
of proper divisors of that number that sum to itself.  For
example, 12 is semi perfect because 1+2+3+6=12 or 2+4+6=12.  Next
to each semi-perfect number must be the example(s) of how it is
semi-perfect.  The example(s) are to be ascending order by the
factors.   If more than one example exists for a semi-perfect
number, then display the example with the fewest addends first; if
two have the same number of addends, then display the one
containing the smallest addend first.  Output must be of the
following format:

OUTPUT: SEMI #  EXAMPLE(S)
6      1 + 2 + 3
12      2 + 4 + 6
12      1 + 2 + 3 + 6
:       :
:       :

3.8  Write a program to keep score for a bowler.  Input will be 10
frames of numbers.  Output will be the scoring of each frame, as
shown below in the example.  The standard method of scoring will
be used in this program.

In each frame the bowler has at most two chances to roll down all
10 pins.  If the bowler does not knock down all the pins in that
frame, then his score is added to the number of pins that he
previously knocked down.  (Note: the bowler's score starts out as
0).

For the first 9 frames, if the bowler knocks all 10 pins down on
the 2nd roll (indicated by a /) then his score for that frame is
his previous score + 10 + the number of pins that he knocks down
on his next roll in the next frame.  If he rolls all the pins down
on his 1st ball of a frame (indicated by an X) then he gets 10 +
the total number of pins that he knocks down on the next 2 rolls.
A new frame is started after 2 balls are rolled or all ten pins
are knocked down on the 1st ball.

In the 10th frame, the bowler is allowed at most three rolls,
depending upon his first and second rolls.  If he gets all the
pins down on the 1st roll then his score will be his previous
score plus 10 plus the number of pins he knocks down on his next 2
rolls.  If he knocks all 10 pins down after 2 rolls, his score
will be his previous score + 10 + the number of pins he knocks
down on his next roll.  Input will be 10 frames, each separated by
comma or a space.  For the output, each frame input is right
justified and the score is left justified in each frame.  Example:

INPUT: Enter frames: 7/,X,62,X,X,8/,63,X,X,X9-

Note: 62 indicates that 6 pins were knocked down on 1st roll
and 2 pins were knocked down on 2nd roll;
/ indicates all remaining pins knocked down on 2nd roll;
X indicates 10 pins knocked down on the 1st roll;
- indicates 0 pins knocked down.

OUTPUT: -1- -2- -3- -4- -5- -6- -7- -8- -9- -10-
---!---!---!---!---!---!---!---!---!---!
7/!  X! 62!  X!  X! 8/! 63!  X!  X!X9-!
20 !38 !46 !74 !94 !110!119!149!178!197!
----------------------------------------

3.9  Write a program to convert a real number fraction in base M
to a real number fraction in base N, where M and N are input as
integers between 2 and 16 inclusive.  The base M number input will
have one whole number on the left of the radix point, ".", and at
most seven whole numbers on the right of the radix point. The
judging criterion guarantees that the output base N number will
always have one whole number on the left of the radix point.
Furthermore, there will be at most seven whole numbers, NDigits,
on the right of the radix point as determined by the following
formula:

(1/N) ** NDigits  less than or equal to  (1/M) ** MDigits

where N, M are input as bases;
** represents "raised to the power of"
MDigits is the number of digits to the right of the input
fraction;
NDigits is the smallest integer that satisfies the equation.

For example:

INPUT: Enter M, N, #: 2, 5, 1.11011

(1/5)**NDigits  less than or equal to  (1/2)**5
(1/5)**NDigits  less than or equal to  1/32
NDigits = 3 because
1/5 ** 2 = 1/25   and   1/5 ** 3 = 1/125
Therefore 3 digits will be to the right of the output
number, with the 3rd digit ROUNDED TO THE NEAREST
NUMBER based upon the 4th digit.

.11011 base 2 = ( 1/2 + 1/4 + 1/16 + 1/32) base 10
= ( .84375 ) base 10

.84375 base 10 = ( .4102) Base 5
= ( 4/5 + 1/25 + 0/125 + 0/625) base 10

OUTPUT: 1.410    (Note: 02 ROUNDED DOWN TO 0 because
2 is less than N/2=2.5)

INPUT: Enter M, N, #: 16, 10, 8.FC2

(1/10) ** NDigits  less than or equal to (1/16)**3
Therefore, NDigits is 4.

.FC2 base 16 = 15/16 + 12/256 + 2/4096 = .98486 base 10

OUTPUT: 8.9849   (Note: 86 ROUNDED UP TO 9 because
6 is greater than or equal to N/2)

3.10  Write a program to display the composition of two
polynomials, given as input.  A polynomial is a mathematical
expression consisting of constants multiplied by variables raised
to a non-negative integral power.  The following are examples of
polynomials, where ** stands for "to the power of:"

p(x)=5x**2 + 4x - 1

q(x)=x**2 - 6

The composition of p of q, p(q(x)), is

5*(x**2 - 6)**2 + 4*(x**2 - 6) - 1
5*(x**4 - 12x**2 + 36) + 4*(x**2 - 6) - 1
5x**4 - 60x**2 + 180 + 4x**2 - 24 - 1
5x**4 - 56x**2 + 155

Two polynomials will be input.  First the ORDER (highest
power) of the polynomial is entered as an integer from 0 to 5.
The coefficient of each term is entered starting with the highest
power, then next highest power, down to the 0th power.  The second
polynomial is entered the same way.
The output will consist of the composite function of the
first of the second polynomial p(q(x)), and then the composite
function of the second of the first polynomial q(p(x)).  Starting
from the highest ORDER of the composite function, the output will
be of the following format:

AX**N + BX**(N-1) + ... + CX**1 + DX**0.

For example:

INPUT: Enter the ORDER of p(x): 2
Enter coefficient for x**2: 5
Enter coefficient for x**1: 4
Enter coefficient for x**0: -1

Enter the ORDER of q(x): 2
Enter coefficient for x**2: 1
Enter coefficient for x**1: 0
Enter coefficient for x**0: -6

OUTPUT: P(Q(X))= 5X**4 + 0X**3 + -56X**2 + 0X**1 + 155X**0
Q(P(X))= 25X**4 + 40X**3 + 6X**2 + -8X**1 + -5X**0

INPUT: Enter ORDER of p(x): 0
Enter coefficient for x**0: 9

Enter the ORDER of q(x): 1
Enter the coefficient of x**1: -4
Enter the coefficient of x**0: 3

OUTPUT: P(Q(X))= 9X**0
Q(P(X))= -33X**0

```