Practice assignments and not for submission Problem 1: Write a C program that takes as input four positive numbers -- row1, col1, row2, col2 and allocates space dynamically for two arrays A and B using pointer to pointer. A should be of size row1Xcol1 and B should be of size row2Xcol2. Now, if col1 equals row2, multiply matrices A and B to generate another matrix C. Print the matrix C properly. Problem 2: Write a C program that takes as input a positive integer 'n' and generates a matrix of size 2^n x 2^n using pointer to pointer. Fill the matrix in a row major order with integers in the range [1,2^(2n)]. Write recursive functions to print the matrix in snake fashion. Problem 3: Write a program in C that represents a polynomial of a single variable in a dynamic array and stores only those entries that have non-zero co-efficient. With this representation of a polynomial, write functions that (i) adds two polynomials (ii) multiplies two polynomials (iii) evaluates a polynomial at any real value (iv) finds the derivative of a polynomial.