智乃的箭头魔术
题号:NC305627
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题为直接提交答案类型题目,后台仅有一组测试数据且与题目中给出的输入完全相同,您可以在本地通过各种方式得出答案,建议在提交语言中选择PHP直接提交答案的内容而不必编写一个输出答案的程序。

\hspace{15pt}智乃有一张长度为 2 单位、宽度为 1 单位的纸,在上面画了两个箭头,如下图所示:

图片

\hspace{15pt}智乃现在将这张纸沿虚线将右侧图形对折到左边,并且用胶水将这两个箭头黏在一起,并且在整个过程中保持左侧图形不动,使其成为一个正反两面的正方形折纸玩具,如下图所示:

图片

\hspace{15pt}假设该折纸玩具的初始状态为箭头指向右上方向(注意无论正反哪一面都是等价的),定义 6 种操作从 05,操作数的定义如下:
\hspace{23pt}\bullet\,操作 0,表示该折纸玩具按照中垂线(垂直对称轴)翻转(如图所示 '|' 形的竖线);
\hspace{23pt}\bullet\,操作 1,表示该折纸玩具按照主对角线翻转(如图所示 '/' 形的对角线);
\hspace{23pt}\bullet\,操作 2,表示该折纸玩具按照水平线翻转(如图所示 '-' 形的横线);
\hspace{23pt}\bullet\,操作 3,表示该折纸玩具按照副对角线翻转(如图所示 '\' 形的对角线);
\hspace{23pt}\bullet\,操作 4,表示该折纸玩具顺时针旋转 90 度;
\hspace{23pt}\bullet\,操作 5,表示该折纸玩具逆时针旋转 90 度。
\hspace{15pt}所有翻转轴与旋转方向均相对于观察者的固定空间参考系,不随纸张的变换而改变。

\hspace{15pt}接下来,智乃将进行 100 次操作,每次操作完成后,智乃都会询问你当前箭头的状态,状态即在某次操作后,箭头的朝向,如下图所示:
\hspace{23pt}\bullet\,0 代表右上;
\hspace{23pt}\bullet\,1 代表右下;
\hspace{23pt}\bullet\,2 代表左下;
\hspace{23pt}\bullet\,3 代表左上。

图片

\hspace{15pt}例如,假设智乃的操作序列是:
012345
\hspace{15pt}那么你应该回答:
310232

\hspace{15pt}现在具体的 100 次真实操作序列如下:
0112233445142015320125410214530214510214102302142025101203201451451522302514203214510021454101002532
\hspace{15pt}你需要输出一个长度为 100 的字符串,第 i 位表示执行完前 i 次操作后箭头的状态。

输入描述:

\hspace{15pt}本题不需要处理输入,判题时也不会提供任何程序输入

输出描述:

\hspace{15pt}在一行上输出一个长度为 100、仅包含数字 \{0,1,2,3\} 的字符串,表示智乃每次操作完成后箭头的状态。

\hspace{15pt}建议在提交语言中选择PHP直接提交答案的内容而不必编写一个输出答案的程序。

备注: