BOJ 4317 Advanced Causal Measurements (ACM)
BOJ 4317 Advanced Causal Measurements (ACM)
문제 내용
시간 에 위치 에서 일어난 사건을 라고 합시다. 빛의 속도에는 한계가 있기 때문에, 일 때 이 의 원인일 가능성이 있으려면 이어야 합니다.
개의 사건이 주어집니다. 이 개의 사건의 원인이 될 수 있는 개의 사건의 집합 중에서 가장 이른 사건이 발생한 시간의 최댓값을 구하세요.
입력
첫 줄에 과 이 주어집니다. ()
다음 줄에 각 사건의 정보가 , 순서로 주어집니다. ()
출력
문제의 정답을 출력합니다.
문제 풀이
스포일러
문제를 뒤집어서 원인 사건들의 가장 이른 시간 가 주어졌을 때 그러한 사건의 개수의 최솟값을 구해 봅시다.
먼저, 원인 중에 보다 늦게 발생한 사건이 있다면, 그 사건을 시간 로 옮겨도 됩니다. 따라서 모든 원인 사건의 발생 시간을 로 고정할 수 있습니다. 그리고 보다 일찍 발생한 결과 사건이 있다면 원인 사건의 가장 이른 시간은 일 수 없습니다.
이제 원인 사건의 가 증가하는 순으로 필요한 사건을 추가해주면 되는데, 다음과 같이 하면 됩니다.
- 추가할 원인 사건의 가 감소하는 일이 절대 없게 하려면, 주어진 결과 사건들을 의 오름차순으로 정렬해야 합니다. 아직 커버되지 않은 를 커버하는 최대의 좌표는 입니다.
- 일단 를 추가했으면, 이후의 모든 점에 대해 는 이미 성립하므로, 인 모든 점이 커버됩니다.
따라서 이 방법으로 최적의 원인 사건의 개수를 구할 수 있으므로, 이것을 기준으로 매개변수 탐색을 진행해주면 됩니다.
Last updated on