| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | --- | 
					
						
							|  |  |  | id: 5900f4b11000cf542c50ffc4 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | title: '問題 325: 石取りゲーム (2)' | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | challengeType: 5 | 
					
						
							|  |  |  | forumTopicId: 301982 | 
					
						
							|  |  |  | dashedName: problem-325-stone-game-ii | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --description--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | 石を積み上げた 2 つの山と 2 人のプレイヤーでゲームをします。 各プレイヤーは自分のターンで、大きい山から石をいくつか取ります。 取る石の数は、小さい山にある石の数の正の倍数でなければなりません。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | 例えば、小さい山に 6 個、大きい山に 14 個の石がある構成を順序対 (6,14) で表すと、先手は大きい山から 6 個または 12 個の石を取ることができます。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | 1 つの山からすべての石を取ったプレイヤーの勝ちです。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | 勝利構成とは、先手が必ず勝てる構成です。 例えば、(1,5), (2,6), (3,12) は、先手が即座に 2 つ目の山からすべての石を取れるので、勝利構成です。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | 敗北構成とは、先手が何をしようと後手が必ず勝てる構成です。 例えば、(2,3) と (3,4) は敗北構成です。ルールに従う限り、何をしても後手の勝利構成になります。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | $0 < x_i < y_i N$ のとき、すべての敗北構成 ($x_i$, $y_i$) に対する ($x_i + y_i$) の和を、$S(N)$ とします。 $S(10) = 211$, $S({10}^4) = 230\\,312\\,207\\,313$ であることを確認できます。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | $S({10}^{16})\bmod 7^{10}$ を求めなさい。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | # --hints--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 20:38:20 +05:30
										 |  |  | `stoneGameTwo()` は `54672965` を返す必要があります。 | 
					
						
							| 
									
										
										
										
											2022-01-21 01:00:18 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert.strictEqual(stoneGameTwo(), 54672965); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --seed--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function stoneGameTwo() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | stoneGameTwo(); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --solutions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | // solution required | 
					
						
							|  |  |  | ``` |