동적 볼록 껍질
시간 제한4초메모리 제한512 MB
삽입과 삭제가 있는 (x-a)^4+b 함수 집합에서 주어진 x의 최솟값을 구하는 문제입니다.
문제
먼저 관련된 고전 알고리즘을 살펴보자. 개의 함수 가 주어지며, 이다. 고정된 매개변수 에 대해 모든 에 걸친 의 최솟값을 구하려면, 볼록 껍질 위에서 해당 함수를 찾으면 된다.
이제 개의 함수 가 주어지며, 이다. 이 함수들에 대해 개의 연산을 수행해야 한다. 각 연산은 다음 중 하나의 형태이다.
- "1 " (, ): 새로운 함수 를 추가한 뒤 을 로 바꾼다.
- "2 " (): 함수 를 삭제한다. 각 함수는 두 번 이상 삭제되지 않는다고 보장된다.
- "3 " (): 이고 아직 삭제되지 않은 함수 중에서 최솟값을 구한다.
입력
첫째 줄에 테스트 케이스의 개수 ()가 주어진다. 각 테스트 케이스는 다음과 같다.
첫째 줄에 함수의 개수 과 연산의 개수 ()이 주어진다.
이어서 개의 줄에 각각 번째 함수 를 정하는 정수 와 (, )가 주어진다.
다음 개의 줄에는 연산이 하나씩 주어진다. 각 연산의 형식은 위와 같다.
출력
각 질의에 대해 의 최솟값을 한 줄에 출력한다. 함수가 하나도 없으면 "-1"을 출력한다.