if __name__ == '__main__': n, m, s = map(int, input().split(' ')) ranges = [] for _ in range(m): l, r = map(int, input().split(' ')) ranges.append((l, r)) ranges.sort(key=lambda e: e[0]) free = [] if ranges[0][0] != 1: free.append((1, ranges[0][1] - 1)) if ranges[-1][1] != n: free.append((ranges[-1][1] + 1, n)) for idx in range(len(ranges) - 1): if ranges[idx][1] + 1 <= ranges[idx + 1][0] - 1: free.append((ranges[idx][1] + 1, ranges[idx + 1][0] - 1)) distances = [] for f in free: distances.append((f[0], (abs(s - f[0])))) distances.append((f[1], abs(s - f[1]))) distances.sort(key=lambda e: e[1]) filter(lambda e: e[1] == distances[0][0], distances) print(distances[0][0])
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 | if __name__ == '__main__': n, m, s = map(int, input().split(' ')) ranges = [] for _ in range(m): l, r = map(int, input().split(' ')) ranges.append((l, r)) ranges.sort(key=lambda e: e[0]) free = [] if ranges[0][0] != 1: free.append((1, ranges[0][1] - 1)) if ranges[-1][1] != n: free.append((ranges[-1][1] + 1, n)) for idx in range(len(ranges) - 1): if ranges[idx][1] + 1 <= ranges[idx + 1][0] - 1: free.append((ranges[idx][1] + 1, ranges[idx + 1][0] - 1)) distances = [] for f in free: distances.append((f[0], (abs(s - f[0])))) distances.append((f[1], abs(s - f[1]))) distances.sort(key=lambda e: e[1]) filter(lambda e: e[1] == distances[0][0], distances) print(distances[0][0]) |