ボール除去ゲームの勝者を見つけるためのC++プログラム
4つの数n1、n2、k1、およびk2があるとします。 2つのボックスがあり、最初のボックスにはn1個のボールがあり、2番目のボックスにはn2個のボールがあるとします。アマルとビマルがゲームをプレイしています。 1回の移動で1からk1のボールを取り、それらを捨てることができます。同様に、2回目の移動で1からk2のボールを取ります。アマルはゲームを開始し、彼らは交互にプレイします。自分の動きをプレイできない人はゲームに負けます。誰が勝者になるかを見つけなければなりません。
したがって、入力がn1=2のような場合。 n2 =2; k1 =1; k2 =2の場合、各ボックスに2つのボールがあるため、出力はBimalになります。アマルは最初のボックスから1つのボールを取り、次にビマルは2番目のボックスから1つまたは2つのボールを取ります。アマルがどのように行動しても、ビマルは最適なプレーをすれば常に勝つことができます。
ステップ
これを解決するには、次の手順に従います-
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
-
Pythonでセット要素除去ゲームの勝者を見つけるためのプログラム
最初のn個の自然数{1..n}のセットがあるとします。アマルとビマルがゲームをしています。ゲームのルールは以下のとおりです アマルは常に最初にプレイします 各移動中に、現在のプレーヤーはセットから素数pを選択します。次に、プレーヤーはpとそのすべての倍数をセットから削除します。 動きのない人は誰でもゲームに負けます。nがあれば、勝者の名前を見つける必要があります。 したがって、入力がn =5の場合、初期セットは{1,2,3,4,5}であるため、出力はAmalになります。ここで、Amalが数値p =2を選択し、セットから2、4を削除すると、現在のセットは{1,3,5}にな
-
Pythonで配列除去ゲームの勝者を見つけるプログラム
AmalとBimalが、いくつかの数字を持つ1つの配列Aを持つゲームをプレイしているとします。ゲームのルールは次のとおりです Bimalは常に開始します 各ターンで、1人のプレーヤーが配列から最大の要素を削除し、削除された要素の右側にある他のすべての要素も削除されます。 交互にプレイします 残りの要素をすべて削除したプレーヤーは、ゲームに勝ちます。 したがって、入力がnums =[5,2,6,3,4]の場合、出力はAmalになります。これは、最初にBimalが[6,3,4]を削除するため、配列が[5,2]になるためです。その後、アマルはすべてを削除するので、彼が勝者になります。 これを