Homework Assignment 4 CS 378h Unique Number: 53455 Spring, 2026 Given: February 23, 2026 Due: March 5, 2026 This homework assignment concerns the calculation of reachability using matrices. Consider a square matrix that has all zero elements below the diagonal and zero elements on the diagonal. Above the diagonal are only entries with 1 or 0. Given a matrix element (i, j) where j > i, this matrix has a 1 if element i is connected to element j. By repeated "multiplication", one can calculate the connectivity of all nodes. Our original initial square matrix only contains a 1 where element i is connected to element j. We can calculate the reachability of i to all elements by repeatedly "multiplying" the original matrix with an evolving solution that first computes the two-step reachability, and then the three-step reachability, ... by repeatedly "multiplying" the original, one-step matrix by the evolving matrix. Apply the methods you learned to transpose a matrix to the problem of calculating the reachability of a matrix; that is, think about how to compute the reachability of a matrix by repeated "multiplication". Turn-in a C-language program that computes the reachability of a matrix described in the second paragraph of this assignment. Include some tests that show your program works correctly for matrices as large as 2^15 distinct elements; thus, your result array will contain 2^30 entries, with approximately 2^29 i,j pairs that will indicate whether element i is connected to element j. Think carefully about how to perform the "multiplication" efficiently. Your homework should include a one-page, C-language-style comment at the beginning of your program that explains your approach and how to test your program.