SOJ ONLINE JUDGE

문제 166

직선과 구간 직선의 최솟값

내 상태
미제출
난이도
166번 문제 난이도 보기
Diamond II
출제자
rlatjwls7882
시간 제한
2000 ms
메모리 제한
1024 MB
166번 문제 태그 보기
리–차오 트리볼록 껍질을 이용한 최적화자료 구조

처음에 비어 있는 직선 집합 $S$가 있다. 각 직선에는 기울기 $a$, 절편 $b$와 유효 구간이 정해져 있다. 다음 $Q$개의 쿼리를 순서대로 처리해 보자.

  • $1\ a\ b$: 모든 실수 $x$에서 유효한 직선 $y=ax+b$를 $S$에 추가한다.
  • $2\ l\ r\ a\ b$: $l \le x \le r$에서만 유효한 직선 $y=ax+b$를 $S$에 추가한다.
  • $3\ x$: $x$에서 유효한 직선들의 $ax+b$ 중 최솟값을 구한다.

같은 직선을 여러 번 추가할 수 있다. 질의한 위치에서 유효한 직선이 없을 수도 있다.

입력

첫 번째 줄에 정수 $Q$가 주어진다. $(1 \le Q \le 200\,000)$

두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 주어진다. 각 쿼리는 본문에 설명된 형식으로 주어지며, 한 줄의 값은 공백으로 구분되어 주어진다.

$1$번 쿼리에는 두 정수 $a$, $b$가 공백으로 구분되어 주어진다. $(-10^9 \le a \le 10^9; -10^{18} \le b \le 10^{18})$

$2$번 쿼리에는 네 정수 $l$, $r$, $a$, $b$가 공백으로 구분되어 주어진다. $(-10^9 \le l \le r \le 10^9; -10^9 \le a \le 10^9; -10^{18} \le b \le 10^{18})$

$3$번 쿼리에는 정수 $x$가 주어진다. $(-10^9 \le x \le 10^9)$

출력

$3$번 쿼리의 답을 쿼리가 주어진 순서대로 한 줄에 하나씩 출력한다. 해당 $x$에서 유효한 직선이 없다면 EMPTY를 출력한다.

예제 입력 1

7
3 0
1 2 1
3 3
2 -1 1 -3 4
3 1
3 -1
3 2

예제 출력 1

EMPTY
7
1
-1
5

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.