Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 두 부분으로 나뉘지 않도록 체스판에서 최소 컷을 만들 수 있습니다.

<시간/>

개념

A x B Chessboard가 주어졌을 때, 과제는 Chessboard가 두 부분으로 나뉘지 않도록 Chessboard에 만들 수 있는 최대 컷 수를 계산하는 것입니다.

예시

예는 아래에 나와 있습니다 -

입력

A = 2, B = 4

출력

Number of maximum cuts = 3

입력

A = 2, B = 2

출력

Number of maximum cuts = 1

방법

  • A =2, B =2인 경우 1컷만 만들 수 있습니다(빨간색 표시). 컷을 1개 더 만들면 체스판이 2개로 분할됩니다.

C++에서 두 부분으로 나뉘지 않도록 체스판에서 최소 컷을 만들 수 있습니다.

  • A =2, B =4의 경우 3번의 절단을 할 수 있습니다(빨간색 표시). 컷을 1개 더 만들면 체스판이 2개로 분할됩니다.

C++에서 두 부분으로 나뉘지 않도록 체스판에서 최소 컷을 만들 수 있습니다.

그 결과 없음을 알 수 있다. 컷 =(A-1) * (B-1).

예시

//This is C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
// function that calculates the maximum no. of cuts
int numberOfCuts1(int A, int B){
   int result1 = 0;
   result1 = (A - 1) * (B - 1);
   return result1;
}
// Driver Code
int main(){
   int A = 4, B = 4;
   // Calling function.
   int Cuts = numberOfCuts1(A, B);
   cout << "Maximum cuts = " << Cuts;
   return 0;
}

출력

Maximum cuts = 9