Khái niệm
Với Bàn cờ A x B, nhiệm vụ là tính toán Số lần cắt tối đa mà chúng ta có thể tạo trong Bàn cờ sao cho Bàn cờ không bị chia thành 2 phần.
Ví dụ
Các ví dụ được đưa ra bên dưới -
Đầu vào
A = 2, B = 4
Đầu ra
Number of maximum cuts = 3
Đầu vào
A = 2, B = 2
Đầu ra
Number of maximum cuts = 1
Phương pháp
-
Với A =2, B =2, ta chỉ dựng được 1 hình cắt (đánh dấu màu đỏ). Nếu chúng ta dựng thêm 1 vết cắt thì bàn cờ sẽ chia thành 2 quân
-
Với A =2, B =4, ta có thể thực hiện 3 vết cắt (dấu màu đỏ). Nếu chúng ta dựng thêm 1 vết cắt thì bàn cờ sẽ chia thành 2 quân cờ.
Kết quả của điều này, có thể nhận thấy rằng không. trong tổng số lần cắt =(A-1) * (B-1).
Ví dụ
//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; }
Đầu ra
Maximum cuts = 9