bzoj#P2781. 机器人走步

机器人走步

题目描述

定义 r(s)r(s) 为一个 01 序列 SS 的补充翻转序列(例如:r(100011)=001110r(100011)=001110

现在有一种方法生成一种序列即:Sn=Sn1+1+r(Sn1)S_n=S_{n-1}+’1’+r(S_{n-1})

S0=1S_0=1

S1=110S_1=110

S2=1101100S_2=1101100

S3=110110011100100S_3=110110011100100

\cdots

此题所需的序列来自 S30S_{30}

现在有一个机器人放在 (0,0)(0,0),这个点且面朝右方。

它每秒向前走一步,然后读 01 序列的一个数,如果是 11 则向左转,否则向右转。

求经过 xx 步后机器人到了哪里。

输入格式

若干组数据,每行一个正整数 xx
数据以一行一个 -1 结尾。

输出格式

对于每组询问,若最后机器人到了 (x,y)(x,y),请输出 (x,y)

1
2
3
-1
(1,0)
(1,1)
(0,1)

数据规模与约定

对于 100%100\% 的数据,数据组数不超过 2002000x1090\leq x\leq 10^9