Minimum Cuts can be made in the Chessboard such that it is not divided into 2 parts
Given M x N Chessboard. The task is to determine the Maximum numbers of cuts that we can make in the Chessboard such that the Chessboard is not divided into 2 parts.
Examples:
Input: M = 2, N = 4 Output: Maximum cuts = 3 Input: M = 3, N = 3 Output: Maximum cuts = 4
Representation:
- For M = 2, N = 2 We can only make 1 cut (mark in red). if we make 1 more cut then the chessboard will divide into 2 pieces.
- For M = 2, N = 4 We can makes 3 cuts (marks in red). if we make 1 more cut then the chessboard will divide into 2 pieces.
So, it can be observed that no. of cuts = (m-1) * (n-1).
Below is the implementation of the above approach:
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // function that calculates the // maximum no. of cuts int numberOfCuts( int M, int N) { int result = 0; result = (M - 1) * (N - 1); return result; } // Driver Code int main() { int M = 4, N = 4; // Calling function. int Cuts = numberOfCuts(M, N); cout << "Maximum cuts = " << Cuts; return 0; } |
Java
// Java implementation of above approach class GFG { // function that calculates the // maximum no. of cuts static int numberOfCuts( int M, int N) { int result = 0 ; result = (M - 1 ) * (N - 1 ); return result; } // Driver Code public static void main(String args[]) { int M = 4 , N = 4 ; // Calling function. int Cuts = numberOfCuts(M, N); System.out.println( "Maximum cuts = " + Cuts); } } |
Python3
# Python3 implementation of # above approach # function that calculates the # maximum no. of cuts def numberOfCuts(M, N): result = 0 result = (M - 1 ) * (N - 1 ) return result # Driver code if __name__ = = '__main__' : M, N = 4 , 4 # Calling function. Cuts = numberOfCuts(M, N) print ( "Maximum cuts = " , Cuts) # This code is contributed by # Kriti_mangal |
C#
//C# implementation of above approach using System; public class GFG{ // function that calculates the // maximum no. of cuts static int numberOfCuts( int M, int N) { int result = 0; result = (M - 1) * (N - 1); return result; } // Driver Code static public void Main (){ int M = 4, N = 4; // Calling function. int Cuts = numberOfCuts(M, N); Console.WriteLine( "Maximum cuts = " + Cuts); } //This code is contributed by akt_mit } |
PHP
<?php // php implementation of above approach // function that calculates the // maximum no. of cuts function numberOfCuts( $M , $N ) { $result = 0; $result = ( $M - 1) * ( $N - 1); return $result ; } // Driver Code $M = 4; $N = 4; // Calling function. $Cuts = numberOfCuts( $M , $N ); echo "Maximum cuts = " , $Cuts ; // This code is contributed by ANKITRAI1 ?> |
Javascript
<script> // Javascript implementation of above approach // function that calculates the // maximum no. of cuts function numberOfCuts(M, N) { var result = 0; result = (M - 1) * (N - 1); return result; } // Driver Code var M = 4, N = 4; // Calling function. var Cuts = numberOfCuts(M, N); document.write( "Maximum cuts = " + Cuts); </script> |
Output:
Maximum cuts = 9
Time Complexity: O(1)
Auxiliary Space: O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.