시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB0000.000%

문제

Ведётся разработка универсального банкомата, который сможет работать с любой денежной системой. Пусть в денежной системе некоторой страны используются n типов купюр, номиналы которых равны a1, a2, . . . , an. При этом все номиналы различны и перечислены в порядке возрастания: если i > 2, то ai−1 < ai, а также a1 = 1.

Банкомат использует следующий жадный алгоритм для выдачи купюр. Пусть клиент запросил у банкомата сумму c. Изначально есть пустой набор выдаваемых купюр. На каждом шаге алгоритм добавляет в набор купюру максимально возможного номинала так, чтобы сумма номиналов купюр в наборе не превышала c. Когда сумма номиналов купюр в наборе стала равна c, алгоритм останавливается. Отметим, что, поскольку существует купюра с номиналом a1 = 1, алгоритм всегда заканчивает работу за конечное число шагов.

Чтобы оценить эффективность данного алгоритма, требуется выяснить, какое максимальное число купюр может потребоваться выдать за один раз, если максимальная сумма, которую можно запросить, равна b. Поскольку максимальная сумма может зависеть от категории обслуживания клиента, необходимо ответить на q запросов для сумм b1, b2, . . . , bq.

Требуется написать программу, которая по списку номиналов купюр денежной системы и максимальной сумме, которую можно запросить, определяет сумму, которую необходимо запросить в банкомате, чтобы получить максимальное число купюр, и искомое число купюр.

입력

Первая строка содержит целое число n — количество номиналов купюр (1 ≤ n ≤ 200 000).

Вторая строка содержит n различных целых чисел ai (1 = a1 < a2 < . . . < an ≤ 1018).

Третья строка содержит целое число q — количество запросов (1 ≤ q ≤ 200 000).

Следующие q строк содержат по одному целому числу bi (1 ≤ bi ≤ 1018).

출력

Для каждого запроса выведите два числа — сумму, которую необходимо запросить в банкомате, чтобы получить максимальное число купюр, и искомое число купюр.

Если существует несколько сумм, не превышающих максимального значения, для которых будет выдано максимальное число купюр, требуется вывести любую из них.

서브태스크

번호배점제한
113

n ≤ 500, q ≤ 5, ai ≤ 500, bi ≤ 500

218

n = 60, q ≤ 5, ai = 2i−1

320

q ≤ 5, bi ≤ 2 · 105

421

q ≤ 5

528

예제 입력 1

4
1 5 10 50
3
2
8
50

예제 출력 1

2 2
8 4
49 9

힌트

В примере:

  • 2 будет выдано как 1 + 1,
  • 8 будет выдано как 5 + 1 + 1 + 1,
  • 49 будет выдано как 10 + 10 + 10 + 10 + 5 + 1 + 1 + 1 + 1.

채점 및 기타 정보

  • 예제는 채점하지 않는다.