Find the element at the specified index of a Spirally Filled Matrix

Given two integers x and y representing the row and column number in a matrix respectively, the task is to find the integer at the cell (x, y) in the Spirally Filled Matrix.
 

Explanation: 
The size of the matrix change according to the insertion of elements. 
As the row and columns are filled layer – by – layer, a square matrix will be formed as each row and column are added simultaneously in the following manner: 
 

  1. A square matrix of size 1 x 1 is formed having a single element 1.
  2. A square matrix of size 2 x 2 is formed after spiral insertion of elements {2, 3, 4} in order: 
    {{1, 2}, 
    {4, 3}}
  3. A square matrix of size 3 x 3 is formed after spiral insertion of elements {5, 6, 7, 8} in order: 
    {{1, 2, 9}, 
    {4, 3, 8}, 
    {5, 6, 7}} 
     

Below image denotes a 4*4 matrix generated following the above steps: 
 

 



Examples: 
 

Input: X = 2, Y = 3 
Output:
Explanation: 
The element at row 2 and column 3 is 8.
Input: X = 5, Y = 4 
Output: 20 
Explanation: The element at row 5 and column 4 is 20.

 

 

Approach: 
To solve the problem, the logic behind the given spirally filled matrix needs to be understood. Following are the possible cases that needs to be considered:

  • Case 1: If y > x & y is odd 
    The element at (x, y) is equal to y2 – x +1 
     

Illustration: 
y = 3, x = 1 
y2 – x +1 = 9 – 1 + 1 = 9 
Element present at (1, 3) = 9.