Related Articles

Related Articles

Minimum Cuts can be made in the Chessboard such that it is not divided into 2 parts
  • Last Updated : 30 Nov, 2018

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:

  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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
  
}
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

//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    
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right


Output:

Maximum cuts = 9

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :