2018-10-10 18:03:03 -04:00
---
id: 5900f3df1000cf542c50fef1
2021-02-06 04:42:36 +00:00
title: 'Problem 115: Counting block combinations II'
2018-10-10 18:03:03 -04:00
challengeType: 5
2021-02-06 04:42:36 +00:00
forumTopicId: 301741
2021-01-13 03:31:00 +01:00
dashedName: problem-115-counting-block-combinations-ii
2018-10-10 18:03:03 -04:00
---
2020-12-16 00:37:30 -07:00
# --description--
2018-10-10 18:03:03 -04:00
2021-07-15 13:04:11 +05:30
A row measuring `n` units in length has red blocks with a minimum length of `m` units placed on it, such that any two red blocks (which are allowed to be different lengths) are separated by at least one black square.
2021-02-06 04:42:36 +00:00
2021-07-15 13:04:11 +05:30
Let the fill-count function, $F(m, n)$, represent the number of ways that a row can be filled.
2021-02-06 04:42:36 +00:00
2021-07-15 13:04:11 +05:30
For example, $F(3, 29) = 673135$ and $F(3, 30) = 1089155$.
2021-02-06 04:42:36 +00:00
That is, for m = 3, it can be seen that n = 30 is the smallest value for which the fill-count function first exceeds one million.
2021-07-15 13:04:11 +05:30
In the same way, for m = 10, it can be verified that $F(10, 56) = 880711$ and $F(10, 57) = 1148904$, so n = 57 is the least value for which the fill-count function first exceeds one million.
For m = 50, find the least value of `n` for which the fill-count function first exceeds one million.
2021-02-06 04:42:36 +00:00
2021-07-15 13:04:11 +05:30
**Note:** This is a more difficult version of Problem 114.
2018-10-10 18:03:03 -04:00
2020-12-16 00:37:30 -07:00
# --hints--
2018-10-10 18:03:03 -04:00
2021-07-15 13:04:11 +05:30
`countingBlockTwo()` should return `168` .
2018-10-10 18:03:03 -04:00
```js
2021-07-15 13:04:11 +05:30
assert.strictEqual(countingBlockTwo(), 168);
2018-10-10 18:03:03 -04:00
```
2021-01-13 03:31:00 +01:00
# --seed--
## --seed-contents--
```js
2021-07-15 13:04:11 +05:30
function countingBlockTwo() {
2021-01-13 03:31:00 +01:00
return true;
}
2021-07-15 13:04:11 +05:30
countingBlockTwo();
2021-01-13 03:31:00 +01:00
```
2020-12-16 00:37:30 -07:00
# --solutions--
2020-08-13 17:24:35 +02:00
2021-01-13 03:31:00 +01:00
```js
// solution required
```