สมมติว่าเรามีตัวเลขสี่ตัว n1, n2, k1 และ k2 พิจารณาว่ามี 2 กล่อง กล่องแรกมี n1 ลูก และกล่องที่สองมี n2 ลูก Amal และ Bimal กำลังเล่นเกม ในการย้ายครั้งเดียวพวกเขาสามารถหยิบลูกบอลตั้งแต่ 1 ถึง k1 แล้วโยนออกไป ในทำนองเดียวกันอีกอันหนึ่งก็จะรับบอล 1 ถึง k2 ในการเคลื่อนไหวของเขา Amal เริ่มเกมและเล่นสลับกัน ผู้ที่ไม่สามารถเล่นการเคลื่อนไหวของเขาจะแพ้เกม เราต้องค้นหาว่าใครจะเป็นผู้ชนะ
ดังนั้น ถ้าอินพุตเป็นเหมือน n1 =2; n2 =2; k1 =1; k2 =2 ผลลัพธ์จะเป็น Bimal เพราะแต่ละกล่องมี 2 ลูก Amal รับลูกเดียวจากกล่องแรก จากนั้น Bimal สามารถรับ 1 หรือ 2 ลูกจากกล่องที่สอง ไม่ว่า Amal จะทำอะไรก็ตาม Bimal ก็สามารถชนะได้เสมอถ้าเขาเล่นได้อย่างเต็มประสิทธิภาพ
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
if n1 > n2, then: return "Amal" Otherwise return "Biaml"
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#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; }
อินพุต
2, 2, 1, 2
ผลลัพธ์
Bimal