P6161 [Cnoi2020] High Dimension
Background
> In essence, Gensokyo is high-dimensional.
Description
Cirno has caught an $n$-dimensional ant. It wants to crawl from $S(0,0,...,0)$ to $T(1,1,...,1)$.
Trapped inside this $1\times1\times...\times1$ grid, the ant can move in each step only to a point adjacent in exactly one coordinate.
Now Cirno wants to test you: what is the maximum number of pairwise vertex-disjoint paths from $S$ to $T$ (excluding $S$ and $T$) that the ant can find?
You are also required to construct such a set of paths.
Input Format
One line with one integer $n$.
Output Format
The first line contains one integer $t$, the maximum number of paths.
The next $t$ lines each contain one valid path.
A valid path is written as:
> $S$ [space] $P_1$ [space] $P_2$ [space] ... [space] $T$
where $P_i$ is a binary-compressed $01$ string representing an $n$-dimensional coordinate.
**Do not output extra spaces.**
Explanation/Hint
**"This problem uses Special Judge."**
### Explanation of Sample 1
Path $1$: $(0,0) \rightarrow (0,1) \rightarrow (1,1)$.
Path $2$: $(0,0) \rightarrow (1,0) \rightarrow (1,1)$.
They have no common points except $S$ and $T$.
### Constraints
**"This problem does not use bundled testdata; the testdata has multiple difficulty levels."**
For 100% of the testdata, $3 \le n \le 60$.
### Attached Code Snippets
- Binary packing function
```cpp
/**
* For only cpp11, cpp14, cpp17, cpp20.
*
* @param: __s : The binary high-dimension position inputed.
* @return: Standard output format( U64 ).
**/
unsigned long long zip( std::string __s )
{ unsigned long long __r = 0;
for( auto __c : __s )
{ ( __r