CF1275C #define Задача B ...

题目描述

程序员Vasya喜欢使用c/ c++语言来编程。他是C语言的忠实粉丝,因为只有C语言才能充分发挥Define-Oriented program的潜力。在C语言中,define允许在代码中的任何位置直接进行替换。例如,在执行下一个代码时,v的值将等于11 (表达式3+4*2的结果)。 ```c #define add(x) + x #define mul(y) * y int v = 3 add(4) mul(2); ``` Vasya最近写了一个程序来为数组赋值: ``` #define A0(x) x #define A1(x) A0(x) A0(x + 1) A0(x + 3) A0(x + 4) #define A2(x) A1(x) A1(x + 1) A1(x + 3) A1(x + 4) #define A3(x) A2(x) A2(x + 1) A2(x + 3) A2(x + 4) #define A4(x) A3(x) A3(x + 1) A3(x + 3) A3(x + 4) ... #define A24(x) A23(x) A23(x + 1) A23(x + 3) A23(x + 4) #define A25(x) A24(x) A24(x + 1) A24(x + 3) A24(x + 4) const long long values[1125899906842624] = { A25(0) } ``` 不幸的是,由于Vasya的电脑有问题,他的程序不能编译,但他很想知道程序运行后values数组中会有什么值。现在需要你帮他找出答案。

输入格式

第一行是一个整数 $n$($1\leq n\leq 1000$),代表查询的个数。 下面 $n$ 行分别是数组下标 $pos_i$($0\leq pos_i\leq 1125899906842623$),保证合法。

输出格式

输出共 $n$ 行,分别为数组中相对应的值。