Build two grids which are each X wide and Y long where X and Y are user inputs to determine the size of the grids. Fill each cell of both grids with a ‘0’. Randomly fill 1/3rd of the grid’s cells with a ‘1’. You must randomly fill each of the two grids separately so they do not have all the same squares filled with ‘1’. Compare the two grids (square by square comparison) to find squares which have a ‘1’ in both grids. Create a third grid which contains a ‘1’ in squares where both of the compared grids contain a ‘1’ and has a ‘0’ in any other square.
Create a Grid Class and the appropriate methods to perform the above operations. Also, demonstrate the usage of the Grid class and its methods from main function.