Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Minimum Cuts can be made in the Chessboard such that it is not divided into 2 parts

  • Last Updated : 14 Apr, 2021

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: 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

  1. 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.
  2. 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)




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!