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

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

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

题目描述

Компания «ВКонтакте» активно использует языки C/C++ для разработки движков. Старший разработчик Вася — большой любитель языка C, ведь только в нем можно полностью раскрыть потенциал Define-Oriented Programming. В языке C директива \#define позволяет сделать прямую подстановку куска кода в любое место программы. Например, при исполнении следующего кода значение переменной $ v $ будет равно $ 11 $ (в переменную $ v $ запишется результат выражения $ 3 + 4 \cdot 2 $ ). ``` <pre class="lstlisting">``` #define add(x) + x<br></br>#define mul(y) * y<br></br>int v = 3 add(4) mul(2);<br></br> ``` ``` Недавно Вася написал небольшую программу, которая заполняет массив большой длины. Программа выглядит следующим образом: ``` <pre class="lstlisting">``` #define A0(x) x,<br></br>#define A1(x) A0(x) A0(x + 1) A0(x + 3) A0(x + 4)<br></br>#define A2(x) A1(x) A1(x + 1) A1(x + 3) A1(x + 4)<br></br>#define A3(x) A2(x) A2(x + 1) A2(x + 3) A2(x + 4)<br></br>#define A4(x) A3(x) A3(x + 1) A3(x + 3) A3(x + 4)<br></br>...<br></br>#define A24(x) A23(x) A23(x + 1) A23(x + 3) A23(x + 4)<br></br>#define A25(x) A24(x) A24(x + 1) A24(x + 3) A24(x + 4)<br></br><br></br>const long long values[1125899906842624] = { A25(0) };<br></br> ``` ``` К сожалению, его программа не компилируется в силу несовершенства его компьютера, но ему очень интересно знать, какие значения лежали бы в массиве $ values $ , если бы ему удалось скомпилировать и запустить программу. Помогите ему это узнать.

输入输出格式

输入格式


В первой строке дано одно целое число $ n $ ( $ 1 \le n \le 1\,000 $ ) — количество элементов массива, значения которых интересуют Васю. Следующие $ n $ строк содержат $ n $ целых чисел $ pos_i $ ( $ 0 \le pos_i \le 1\,125\,899\,906\,842\,623 $ ) — позиции, для которых нужно узнать значение в массиве.

输出格式


Выведите $ n $ строк. В $ i $ -й строке должно содержаться значение элемента массива на позиции $ pos_i $ .

输入输出样例

输入样例 #1

5
0
1
3
5
8

输出样例 #1

0
1
4
2
3

Input

题意翻译

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

加入题单

算法标签: