만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

결근

시간 제한3초메모리 제한512 MB

요약
Alex가 0부터 m 사이에서 직원들에게 들키지 않으면서 근무 시간을 최소로 하는 출근 시각과 퇴근 시각을 찾습니다.
난이도

보통10점 중 6점

유형
구간, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

결근(Absenteeism)은 정당한 이유 없이 의무나 책임을 습관적으로 이행하지 않는 행위이다.

Wikipedia

알렉스는 회사에서 일한다. 그와 함께 일하는 직원은 nn명이다. 알렉스와 달리 직원들은 정해진 일정을 엄격히 지킨다. ii번째 직원은 시각 aia_i에 출근해서 시각 bib_i에 퇴근한다 (ai<bia_i < b_i).

알렉스는 시각 0보다 일찍 출근할 수 없고, 시각 mm보다 늦게 퇴근할 수 없다. 또한 하루에 kk시간을 일해야 한다 (k≤mk \le m). 알렉스는 일하는 시간을 최대한 줄이고 싶어 한다. 하지만 동료들은 게으른 사람을 싫어한다. 동료 중 누구라도 알렉스가 하루에 kk시간 미만으로 일한다는 것을 알아차리면 상사에게 불평하고, 알렉스는 해고된다.

알렉스가 시각 xx에 출근하고 시각 yy에 퇴근한다고 하자. 단, 0≤x<y≤m0 \le x < y \le m이다. 다음 조건 중 하나라도 성립하면 알렉스는 위험한 상태이다.

  • y−x<ky - x < k이고, ai≤xa_i \le x이며 y≤biy \le b_i인 직원 ii가 존재한다 (구간 [x,y][x, y]가 [ai,bi][a_i, b_i]에 완전히 포함된다). 이 경우 ii번째 직원은 알렉스가 kk시간 미만으로 일하는 것을 직접 본다.
  • x<ai≤y≤bix < a_i \le y \le b_i이고, y<ky < k인 직원 ii가 존재한다. 이 경우 ii번째 직원은 알렉스가 시각 kk보다 일찍 퇴근하는 것을 본다.
  • ai≤x≤bi<ya_i \le x \le b_i < y이고, x>m−kx > m - k인 직원 ii가 존재한다. 이 경우 ii번째 직원은 알렉스가 시각 m−km - k보다 늦게 출근하는 것을 본다.
  • y<aiy < a_i 또는 bi<xb_i < x이고 (구간 [x,y][x, y]와 [ai,bi][a_i, b_i]가 겹치지 않는다), ai≤ka_i \le k이며 bi≥m−kb_i \ge m - k인 직원 ii가 존재한다. 이 경우 ii번째 직원은 알렉스의 근무를 전혀 보지 못하지만, 알렉스가 kk시간 동안 일할 수 없었다고 결론짓는다.

동료 중 누구도 상사에게 불평하지 않게 하면서, 알렉스가 근무하는 최소 시간은 얼마인가?

입력

첫 줄에 세 정수 nn, mm, kk (1≤n≤1051 \le n \le 10^5, 1≤m≤1091 \le m \le 10^9, 1≤k≤m1 \le k \le m)가 주어진다. 각각 직원의 수, 하루의 길이, 알렉스가 하루에 일해야 하는 시간이다.

이어지는 nn개의 줄에는 두 정수 aia_i와 bib_i (0≤ai<bi≤m0 \le a_i < b_i \le m)가 주어진다. 이는 ii번째 직원이 출근하고 퇴근하는 시각이다.

출력

알렉스가 아예 출근하지 않아도 되는 경우에는 "-1 -1"을 출력한다.

그렇지 않은 경우에는 두 정수 xx와 yy (0≤x<y≤m0 \le x < y \le m, y−x≤ky - x \le k)를 출력한다. 이는 알렉스가 출근해야 하는 시각과 퇴근해야 하는 시각이며, 동료 중 누구도 불평하지 않고 근무 시간이 최소가 되는 값이다.

가능한 해가 여러 개이면 그중 아무거나 출력해도 된다.

예제2

  1. 예제 1

    입력
    2 20 10
    0 12
    8 20
    
    예상 출력
    7 13
    
  2. 예제 2

    입력
    2 20 18
    0 10
    10 20
    
    예상 출력
    2 18