n, m, s = [int(x) for x in input().split(' ')] ranges_left = {s:s} ranges_right = {s:s} for i in range(m): l, r = (int(x) for x in input().split(' ')) ranges_left[r] = l ranges_right[l] = r if l <= s <= r: ranges_left[s] = l ranges_right[s] = r dl = None dr = None l = s while l >= 1: if l not in ranges_left: dl = l break l = ranges_left[l] - 1 r = s while r <= n: if r not in ranges_right: dr = r break r = ranges_right[r] + 1 if dl is None: print(dr) exit() if dr is None: print(dl) exit() if abs(s - dl) <= abs(dr - s): print(dl) else: print(dr)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | n, m, s = [int(x) for x in input().split(' ')] ranges_left = {s:s} ranges_right = {s:s} for i in range(m): l, r = (int(x) for x in input().split(' ')) ranges_left[r] = l ranges_right[l] = r if l <= s <= r: ranges_left[s] = l ranges_right[s] = r dl = None dr = None l = s while l >= 1: if l not in ranges_left: dl = l break l = ranges_left[l] - 1 r = s while r <= n: if r not in ranges_right: dr = r break r = ranges_right[r] + 1 if dl is None: print(dr) exit() if dr is None: print(dl) exit() if abs(s - dl) <= abs(dr - s): print(dl) else: print(dr) |