Contest Duration: - (local time) (100 minutes) Back to Home

## G - Teleporting Takahashi Editorial by en_translator

This is a problem on a three-dimensional grid, but we will first consider the simplified version on a one-dimensional grid, then extend it to two-dimensional, and the original three-dimensional version.

##  One-dimensional version

We consider the following problem.

At first he is in square $$0$$ on an infinite one-dimensional grid. When he is in square $$x$$, he can move to square $$x-1$$ or square $$x+1$$. How many ways are there to reach square $$X$$ after $$N$$ moves?

If $$N < |X|$$, then it is impossible to reach square $$X$$ after $$N$$ moves, so the answer is $$0$$.
Also, after moving odd number of times, the resulting position $$x$$ is always odd, and after moving even number of times, $$x$$ is always even, so if $$N \bmod 2 \neq X \bmod 2$$, the answer is $$0$$ too.

We consider other cases. If $$X \geq 0$$ (if $$X < 0$$), “he is in square $$X$$ after exactly $$N$$ moves” if and only if “in the $$N$$ moves, he moves $$(N+|X|)/2$$ times in the positive (negative) direction and $$(N-|X|)/2$$ times in the negative (positive) direction of $$x$$ coordinate.” Therefore, the desired number of ways can be expressed with a binomial coefficient as $$\binom{N}{(N+|X|)/2}$$.

Therefore, the number of ways $$f_1(N, X)$$ to reach square $$X$$ after exactly $$N$$ moves is

$f_1(N, X) = \begin{cases} \displaystyle\binom{N}{(N+|X|)/2} &(\text{if }N \geq |X|\text{ and }N \bmod 2 = X \bmod 2)\\ 0&(\text{otherwise}). \end{cases}$

By precalculating the factorials, $$f_1(N, X)$$ can be calculated for given $$N$$ and $$X$$ in an $$\mathrm{O}(1)$$ time.

##  Two-dimensional version

Consider the following problem.

At first he is in square $$(0, 0)$$ on an infinite two-dimensional grid. When he is in square $$(x, y)$$, he can move to square $$(x-1, y), (x+1, y), (x, y-1)$$ or square $$(x, y+1)$$. How many ways are there to reach square $$X$$ after $$N$$ moves?

In order to solve this problem, we introduce the following coordinate transformation on $$xy$$-coordinate:

$\begin{cases} u = x+y\\ v = x-y\\ \end{cases}$

and we will rephrase the problem as a problem on $$uv$$-coordinate. Also, let $$(U, V) := (X+Y, X-Y)$$.

Then, “the number of ways to reach square $$(X, Y)$$ after $$N$$ moves” is equal to “the number of ways to reach $$(u, v) = (U, V)$$ after $$N$$ moves.”

Also, the counterpart of “when he is in square $$(x, y)$$, he can move to square $$(x-1, y), (x+1, y), (x, y-1)$$ or square $$(x, y+1)$$” on $$uv$$-coordinate system is “when he is at $$(u, v)$$, he can move to $$(u-1, v-1), (u-1, v+1), (u+1, v-1)$$, or $$(u+1, v+1)$$. Therefore, on each move, “whether to increment or decrement $$u$$” and “whether to increment or decrement $$v$$” can be determined independently.

Hence, in order to determine a way to reach $$(u, v) = (U, V)$$ after exactly $$N$$ moves, we can choose the following two routes independently:

• the route along the $$u$$ axis to reach $$u = U$$ after $$N$$ moves ( $$f_1(N, U)$$ choices) and
• the route along the $$v$$ axis to reach $$v = V$$ after $$N$$ moves ( $$f_1(N, V)$$ choices),

so the number of ways $$f_2(N, X, Y)$$ to reach square $$(X, Y)$$ after exactly $$N$$ moves can be expressed as

$f_2(N, X, Y) = f_1(N, U) f_1(N, V) = f_1(N, X+Y) f_1(N, X-Y).$

##  Three-dimensional problem

We now consider the original three-dimensional problem.

We will count the number of ways to reach square $$(X, Y, Z)$$ such that he moves in the direction of $$z$$ axis $$k$$ times. Such a way is determined by the following three factors:

• there are $$\binom{N}{k}$$ ways of choosing which $$k$$ moves of the $$N$$ moves are in the direction of $$z$$ axis;
• the $$k$$ moves along $$z$$ axis are chosen so that he reaches $$z = Z$$ after $$k$$ moves along $$z$$ axis, so there are $$f_1(k, Z)$$ ways to do so;
• the other $$(N-k)$$ moves in the direction other than $$x$$ axis are chosen so that he reaches $$(x, y) = (X, Y)$$ after $$(N-k)$$ moves on the two-dimensional $$xy$$-grid, so there are $$f_2(N-k, X, Y)$$ ways to do so.

Therefore, the number of ways to reach square $$(X, Y, Z)$$ such that he moves in the direction of $$z$$ axis $$k$$ times is

$\binom{N}{k} f_1(k, Z) f_2(N-k, X, Y).$

By finding the sum over $$k = 0, 1, \ldots, N$$, the answer for this problem $$f_3(N, X, Y, Z)$$ is obtained as

$f_3(N, X, Y, Z) = \sum_{k = 0}^N \binom{N}{k} f_1(k, Z) f_2(N-k, X, Y) = \sum_{k = 0}^N \binom{N}{k} f_1(k, Z) f_1(N-k, X+Y) f_1(N-k, X-Y).$

With proper precalculations, necessary binomial coefficients can be computed in an $$\mathrm{O}(1)$$ time each, so $$f_3(N, X, Y, Z)$$ can be computed in a total of $$\mathrm{O}(N)$$ time.

Hence, the problem can be solved in a total of $$\mathrm{O}(N)$$ time.

posted:
last update: