두 개의 숫자 n과 k가 있다고 가정합니다. 아말과 비말이 게임을 하고 있습니다. 규칙은 간단합니다. Amal은 n개의 막대기를 연속으로 그립니다. 그 후 플레이어는 각 턴에서 왼쪽이나 오른쪽에서 정확히 k개의 막대기를 차례로 교차합니다. 아말이 게임을 시작합니다. 턴 전에 종이에 k개 미만의 스틱이 있으면 게임이 종료됩니다. Amal이 Bimal보다 엄격하게 더 많이 움직이면 이깁니다. 승자가 누구인지 찾아야 합니다.
따라서 입력이 n =10과 같으면; k =4이면 출력은 Bimal이 됩니다. Amal이 4개의 막대를 그어 버렸기 때문에 Bimal은 4개의 막대를 지우고 그 후에는 2개의 막대만 남습니다. Amal은 움직일 수 없습니다. 플레이어는 동일한 수의 이동을 하므로 Amal이 이기지 않습니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
if floor of (n / k) is even, then: return "Amal" return "Bimal"
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; string solve(int n, int k) { if ((n / k) % 2 != 0) { return "Amal"; } return "Bimal"; } int main() { int n = 10; int k = 4; cout << solve(n, k) << endl; }
입력
10, 4
출력
Bimal