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

Задача . C. Письма


В Берляндском государственном университете всего \(n\) общежитий, пронумерованных целыми числами от \(1\) до \(n\). Каждое общежитие состоит из квартир, в \(i\)-м общежитии \(a_i\) квартир. Квартиры в \(i\)-м общежитии нумеруются с \(1\) до \(a_i\).

При получении почты на адрес одной из квартир какого-то общежития иногда не указывается номер квартиры в конкретном общежитии, но указывается номер квартиры среди всех квартир \(n\) общежитий. В таком случае, считается что в нумерации сначала идут квартиры первого общежития, затем квартиры второго общежития и так далее. Таким образом, в этой нумерации присутствуют числа от \(1\) до \(a_1 + a_2 + \dots + a_n\). Квартиры каждого общежития в этой нумерации идут подряд в порядке возрастания номеров.

Например, в случае \(n=2\), \(a_1=3\) и \(a_2=5\) на конверте может быть написано произвольное целое число от \(1\) до \(8\). Если на конверте написано число \(7\), то это письмо следует доставить в квартиру номер \(4\) второго общежития.

Для каждого из \(m\) писем по номеру квартиры среди всех \(n\) общежитий найдите конкретное общежитие и номер квартиры в нём, куда следует доставить это письмо.

Входные данные

В первой строке следуют два целых числа \(n\) и \(m\) \((1 \le n, m \le 2 \cdot 10^{5})\) — количество общежитий и количество писем.

Во второй строке следует последовательность \(a_1, a_2, \dots, a_n\) \((1 \le a_i \le 10^{10})\), где \(a_i\) равно количеству квартир в общежитии \(i\). В третьей строке следует последовательность \(b_1, b_2, \dots, b_m\) \((1 \le b_j \le a_1 + a_2 + \dots + a_n)\), где \(b_j\) равно номеру квартиры для письма \(j\). Все \(b_j\) заданы в порядке возрастания.

Выходные данные

Выведите \(m\) строк. В каждую строку выведите по два числа \(f\) и \(k\) — номер общежития \(f\) \((1 \le f \le n)\) и номер квартиры в нём \(k\) \((1 \le k \le a_f)\) для очередного письма.

Примечание

В первом примере письма должны быть доставлены следующим образом:

  • первое письмо в квартиру номер \(1\) в первом общежитии
  • второе письмо в квартиру номер \(9\) в первом общежитии
  • третье письмо в квартиру номер \(2\) во втором общежитии
  • четвёртое письмо в квартиру номер \(13\) во втором общежитии
  • пятое письмо в квартиру номер \(1\) в третьем общежитии
  • шестое письмо в квартиру номер \(12\) в третьем общежитии

Примеры
Входные данныеВыходные данные
1 3 6
10 15 12
1 9 12 23 26 37
1 1
1 9
2 2
2 13
3 1
3 12
2 2 3
5 10000000000
5 6 9999999999
1 5
2 1
2 9999999994

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

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