Разморозка таблицы | 프로그래밍의 벗 PivotOJ
PivotOJ

Разморозка таблицы

시간 제한: 4000ms메모리 제한: 1024MB출처: MOOI 2017-18 quallongBOJ 30737

문제

Только что завершился очный этап Открытой олимпиады школьников по программированию. В очном этапе принимало участие nn школьников, для решения было предложено mm задач (разумеется, интересных), за каждую задачу можно было получить любое количество баллов от 00 до kk включительно. В некоторых задачах есть тесты с offline-проверкой, это означает, что результаты тестирования решения на данных тестах станут доступны только после окончания соревнования. В этот раз правила тестирования всех задач таковы, что решения будут выполняться на тестах с offline-проверкой только при прохождении всех обычных тестов (что, вообще говоря, не всегда верно для задач Открытой олимпиады).

Сейчас все школьники собрались в одном зале и ожидают начала церемонии закрытия. Публично доступна предварительная таблица результатов, в которой баллы всех школьников по всем задачам указаны без учёта баллов за тесты с offline-проверкой. При этом каждый из участников олимпиады знает свои итоговые баллы по всем задачам, то есть баллы с учётом тестов с offline-проверкой. Время от времени кто-либо из участников сообщает всем присутствующим свои баллы по какой-либо задаче, а некоторые из участников задаются вопросом, какое максимальное и какое минимальное место они могли занять с учётом предварительной таблицы и всей информации, сообщённой к данному моменту другими участниками.

Местом участника называется количество участников, набравших строго большее количество баллов чем он, увеличенное на один. Когда кто-либо из участников хочет выяснить своё максимальное и минимальное возможное итоговое место, он рассматривает все возможные итоговые таблицы, которые могли получиться с учётом 1) имеющейся предварительной таблицы, 2) информации, сообщённой другими участниками, и 3) правилами тестирования задач. Последнее означает, что баллы за offline-проверку можно получить, только набра полный балл по обычным тестам.

입력

В первой строке записаны четыре целых числа nn, mm, qq, kk (1n1 \leq n, m100000m \leq 100\,000, 1nm10000001 \leq n \cdot m \leq 1\,000\,000, 1q1000001 \leq q \leq 100\,000, 1k1091 \leq k \leq 10^9) --- количество участников олимпиады, количество задач, количество событий и максимальный балл за каждую задачу соответственно.

Во второй строке записаны mm целых чисел s1,s2,,sms_1, s_2, \ldots, s_m (0sik0 \leq s_i \leq k), ii-е из которых задаёт количество баллов за тесты с offline-проверкой в ii-й задаче. Таким образом обычные тесты по ii-й задаче стоят ksik - s_i баллов.

Далее следуют nn строк по mm целых чисел в каждой. Через ai,ja_{i,j} обозначим jj-е число в ii-й строке (0ai,jksj0 \leq a_{i,j} \leq k - s_j) --- количество баллов ii-го участника по jj-й задаче в предварительное таблице результатов.

Далее следуют qq строк с описанием событий. Каждая строка начинается с целого числа tt (1t21 \leq t \leq 2) --- типа события.

Если t=1t=1, то далее следует одно целое число ii (1in1 \leq i \leq n), которое означает, что участник с номером ii хочет узнать своё максимальное и минимальное возможное место в итоговой таблице.

Если t=2t=2, то далее следуют три целых числа ii, jj, cc (1in1 \leq i \leq n, 1jm1 \leq j \leq m, ai,jcka_{i,j} \leq c \leq k), которые означают, что участник с номером ii объявил всем, что его баллы по задаче jj равны cc.

Гарантируется, что никакой участник не называет баллы по одной и той же задаче дважды, и что участник называет свои баллы по задаче только при условии, что он набрал по ней максимально возможный балл без учёта тестов с offline-проверкой. Дополнительно гарантируется, что во входных данных присутствует хотя бы один запрос первого типа.

출력

Для каждого запроса первого типа выведите два целых числа --- максимальное и минимальное место, которое мог занять данный участник, согласно имеющейся на текущий момент времени информации.

힌트

В первом тесте из условия оба участника делят первое место.

Во втором тесте из условия первый участник может набрать ещё 1010 баллов, но даже если этого не произойдёт, он останется на первом месте. Баллы второго участника измениться не могут и он занимает второе место.

В третьем тесте из условия каждый из участников может набрать от 190190 до 200200 баллов и, в зависимости от этого, занять либо первое, либо второе место.

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

예제

예제 1

입력
2 2 2 100
0 0
100 100
100 100
1 1
1 2
출력
1 1
1 1

예제 2

입력
2 2 2 100
10 0
90 100
89 100
1 1
1 2
출력
1 1
2 2

예제 3

입력
2 2 2 100
10 0
90 100
90 100
1 1
1 2
출력
1 2
1 2

예제 4

입력
2 2 6 100
10 0
90 100
90 100
1 1
1 2
2 1 1 90
2 2 1 100
1 1
1 2
출력
1 2
1 2
2 2
1 1
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.