Giả sử chúng ta có bốn số n1, n2, k1 và k2. Xét có 2 hộp, hộp thứ nhất có n1 bóng và hộp thứ hai có n2 bóng. Amal và Bimal đang chơi trò chơi. Trong một nước đi, họ có thể lấy từ 1 đến k1 bóng và vứt đi, tương tự người thứ hai sẽ lấy 1 đến k2 bóng trong nước đi của mình. Amal bắt đầu trò chơi và họ chơi luân phiên. Người không thể thực hiện nước đi sẽ thua. Chúng ta phải tìm ai sẽ là người thắng.
Ví dụ, nếu đầu vào là n1 = 2; n2 = 2; k1 = 1; k2 = 2, thì đầu ra sẽ là Bimal, vì mỗi hộp có 2 bóng. Amal lấy 1 bóng từ hộp thứ nhất và sau đó Bimal có thể lấy 1 hoặc 2 bóng từ hộp thứ hai. Dù Amal làm gì, Bimal luôn thắng nếu chơi tối ưu.
Các bước
Để giải quyết bài toán này, chúng ta sẽ làm theo các bước sau:
if n1 > n2, thì: return "Amal" Ngược lại return "Biaml"
Ví dụ
Xem triển khai sau để hiểu rõ hơn:
#include <bits/stdc++.h> using namespace std; string solve(int n1, int n2, int k1, int k2) { if (n1 > n2) return "Amal"; else return "Biaml"; } int main() { int n1 = 2; int n2 = 2; int k1 = 1; int k2 = 2; cout << solve(n1, n2, k1, k2) << endl; }Đầu vào
2, 2, 1, 2
Đầu ra
Bimal