2.1 KiB
2.1 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5900f4ae1000cf542c50ffc0 | 問題 321: カウンターを入れ替える | 5 | 301978 | problem-321-swapping-counters |
--description--
2n + 1 個のマスが横方向に一列に並べられ、一方の端に n 個の赤のカウンターが置かれ、もう一方の端に n 個の青のカウンターが置かれ、その間の 1 マスは空いています。 例えば、n = 3 のときは下図のようになります。
カウンターは、あるマスから次のマスに移動したり (スライド)、別のカウンターの隣のマスが空いていればそのカウンターを飛び越えたり (ホップ) できます。
色付きカウンターの位置を完全に入れ替える (すなわち赤のカウンターをすべて右へ、青のカウンターをすべて左へ移動する) ための移動やアクションの最小回数を、M(n) とします。
M(3) = 15 であることを確認できます。これは三角数でもあります。
M(n) が三角数となるような n の値に基づいて数列を作ると、最初の 5 項は 1, 3, 10, 22, 63 で、それらの和は 99 です。
この数列の最初の 40 項の和を求めなさい。
--hints--
swappingCounters() は 2470433131948040 を返す必要があります。
assert.strictEqual(swappingCounters(), 2470433131948040);
--seed--
--seed-contents--
function swappingCounters() {
return true;
}
swappingCounters();
--solutions--
// solution required