Given the position of the king on an 8 X 8 chessboard, the task is to count the total number of squares that can be visited by the king in m moves. The position of the king is denoted using row and column number.
Note: The square which is currently acquired by the king is already visited and will be counted in the result.
Examples:
Input: r = 4, c = 4, m = 1
Output: 9
Input: r = 4, c = 4, m = 2
Output: 25
Approach: A king can move one square in any direction (i.e horizontally, vertically and diagonally). So, in one move king can visit its adjacent squares.
So, A square which is within m units distance (Considering 1 Square as 1 unit distance) from the king’s current position can be visited in m moves.
For all squares of the chessboard, check if a particular square is at m unit distance away or less from King’s current position.
- Increment count, if step 1 is true.
- Print the count
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// Function to return the count of squares// that can be visited by king in m movesint countSquares(int r, int c, int m){ // To store the count of squares int squares = 0; // Check all squares of // the chessboard for (int i = 1; i <= 8; i++) { for (int j = 1; j <= 8; j++) { // Check if square (i, j) is // at a distance <= m units // from king's current position if (max(abs(i - r), abs(j - c)) <= m) squares++; } } // Return count of squares return squares;}// Driver codeint main(){ int r = 4, c = 4, m = 1; cout << countSquares(r, c, m) << endl; return 0;} |
Java
// Java implementation of the approachclass GFG { // Function to return the count of squares // that can be visited by king in m moves static int countSquares(int r, int c, int m) { // To store the count of squares int squares = 0; // Check all squares of // the chessboard for (int i = 1; i <= 8; i++) { for (int j = 1; j <= 8; j++) { // Check if square (i, j) is // at a distance <= m units // from king's current position if (Math.max(Math.abs(i - r), Math.abs(j - c)) <= m) squares++; } } // Return count of squares return squares; } // Driver code public static void main(String[] args) { int r = 4, c = 4, m = 1; System.out.print(countSquares(r, c, m)); }} |
C#
// C# implementation of the approachusing System;class GFG { // Function to return the count of squares // that can be visited by king in m moves static int countSquares(int r, int c, int m) { // To store the count of squares int squares = 0; // Check all squares of // the chessboard for (int i = 1; i <= 8; i++) { for (int j = 1; j <= 8; j++) { // Check if square (i, j) is // at a distance <= m units // from king's current position if (Math.Max(Math.Abs(i - r), Math.Abs(j - c)) <= m) squares++; } } // Return count of squares return squares; } // Driver code public static void Main() { int r = 4, c = 4, m = 1; Console.Write(countSquares(r, c, m)); }} |
Python3
# Python implementation of the approach# Function to return the count of squares# that can be visited by king in m movesdef countSquares(r, c, m): # To store the count of squares squares = 0 # Check all squares of # the chessboard for i in range (1, 9): for j in range (1, 9): # Check if square (i, j) is # at a distance <= m units # from king's current position if(max(abs(i - r), abs(j - c)) <= m): squares = squares + 1 # Return count of squares return squares# Driver coder = 4c = 4m = 1print(countSquares(r, c, m)); |
PHP
<?php// PHP implementation of the approach // Function to return the count of squares // that can be visited by king in m moves function countSquares($r, $c, $m) { // To store the count of squares $squares = 0; // Check all squares of // the chessboard for ($i = 1; $i <= 8; $i++) { for ($j = 1; $j <= 8; $j++) { // Check if square (i, j) is // at a distance <= m units // from king's current position if (max(abs($i - $r), abs($j - $c)) <= $m) $squares++; } } // Return count of squares return $squares; } // Driver code $r = 4;$c = 4;$m = 1; echo countSquares($r, $c, $m);// This code is contributed by Ryuga?> |
Javascript
<script>// Javascript implementation of the approach // Function to return the count of squares // that can be visited by king in m moves function countSquares(r, c, m) { // To store the count of squares let squares = 0; // Check all squares of // the chessboard for (let i = 1; i <= 8; i++) { for (let j = 1; j <= 8; j++) { // Check if square (i, j) is // at a distance <= m units // from king's current position if (Math.max(Math.abs(i - r), Math.abs(j - c)) <= m) squares++; } } // Return count of squares return squares; }// Driver Code let r = 4, c = 4, m = 1; document.write(countSquares(r, c, m)); </script> |
9
Time Complexity: O(1), since the loop runs for a total of 64 times, that is constant time only.
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

