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$ 行,分别为数组中相对应的值。