Олимпиадный тренинг

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


Задача

Темы: *особая задача

Компания «ВКонтакте» активно использует языки C/C++ для разработки движков. Старший разработчик Вася — большой любитель языка C, ведь только в нем можно полностью раскрыть потенциал Define-Oriented Programming. В языке C директива #define позволяет сделать прямую подстановку куска кода в любое место программы. Например, при исполнении следующего кода значение переменной \(v\) будет равно \(11\) (в переменную \(v\) запишется результат выражения \(3 + 4 \cdot 2\)).

#define add(x) + x
#define mul(y) * y
int v = 3 add(4) mul(2);

Недавно Вася написал небольшую программу, которая заполняет массив большой длины. Программа выглядит следующим образом:

#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) };

К сожалению, его программа не компилируется в силу несовершенства его компьютера, но ему очень интересно знать, какие значения лежали бы в массиве \(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\).

Примечание

Начало этого массива выглядит следующим образом:

const long long values[1125899906842624] = { 0, 1, 3, 4, 1, 2, 4, ... };

Примеры
Входные данныеВыходные данные
1 5
0
1
3
5
8
0
1
4
2
3

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя