시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 728 | 323 | 265 | 44.389% |
서강 나라에서는 일직선 도로를 따라 $N$개의 버스 노선을 운영 중이다. 필요할 때마다 노선을 새로 만든 탓에 겹치거나 중복되는 노선이 많다. 복잡한 버스 노선에 지친 시민들을 위해 버스 노선을 개편하기로 했다.
각 버스 노선은 세 정수 $S$, $E$, $C$로 나타낼 수 있으며, 구간 $[S,E]$를 요금 $C$로 운행한다는 뜻이다. 어떤 두 버스 노선의 구간이 한 점 이상에서 겹친다면, 두 구간을 합친 새 노선으로 대체한다. 이때 요금은 더 낮은 금액의 요금을 따르기로 했다. 버스 노선 개편은 구간이 겹치는 버스 노선이 없을 때까지 진행한다.
그림 D.1: 개편 전과 개편 후의 버스 노선도
버스 노선들의 정보가 주어지면, 개편이 끝난 후 버스 노선의 정보를 출력하는 프로그램을 작성하자.
첫 번째 줄에 버스 노선의 수 $N$이 주어진다. ($1 \le N \le 200\,000$)
두 번째 줄부터 $N$개의 줄에 각 버스 노선을 나타내는 세 정수 $S$, $E$, $C$가 주어진다. ($0 \le S \lt E \le 10^9$, $1 \le C \le 10^9$)
첫 번째 줄에 개편이 끝난 후의 버스 노선의 수 $K$를 출력한다.
두 번째 줄부터 $K$개의 줄에 개편 후 각 버스 노선의 $S$, $E$, $C$를 $S$가 작은 순서대로 출력한다.
6 1 4 4 6 9 5 7 9 6 2 5 7 0 2 10 9 10 10
2 0 5 4 6 10 5
5 1 2 4 3 7 3 8 9 5 10 14 10 17 18 3
5 1 2 4 3 7 3 8 9 5 10 14 10 17 18 3
University > 서강대학교 > 2021 Sogang Programming Contest > Master D번
University > 서강대학교 > 2021 Sogang Programming Contest > Open C번