Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- ev = []
- a = []
- for i in range(n):
- l, r = map(int, input().split())
- a.append((l, r))
- ev.append((l, 1, i))
- ev.append((r, -1, i))
- ev.sort()
- bal = 0
- INF = 10 ** 18
- mn = INF
- one = -1
- two = -1
- last = 0
- for i in range(2 * n):
- bal += ev[i][1]
- if bal > 0 and ev[i][1] == -1 and i - 1 >= 0 and ev[i - 1][1] == 1:
- if mn > ev[i][0] - ev[i - 1][0] and ev[i][0] - ev[i - 1][0] > 0:
- mn = ev[i][0] - ev[i - 1][0]
- one = ev[i][2]
- two = ev[i - 1][2]
- if mn == INF:
- print(0)
- elif one != two:
- print(one + 1, two + 1)
- else:
- l, r = a[one][0], a[one][1]
- for i in range(n):
- if i != one and a[i][0] <= l and a[i][1] >= r:
- ans = i
- break
- print(ans + 1, one + 1)
Advertisement
Add Comment
Please, Sign In to add comment