#!/usr/bin/env python3 import sys def main(): N, M, S = [int(x) for x in input().split()] rawlrs = [] for i in range(M): rawlrs.append([int(x) for x in input().split()]) rawlrs.sort() lrs = [] xl, xr = rawlrs[0] for l, r in rawlrs[1:]: if xr + 1 == l: xr = r else: lrs.append([xl, xr]) xl, xr = l, r lrs.append([xl, xr]) d = N p = 0 for l, r in lrs: if l <= S: if r < S: if d > (di := S - (r + 1)): d = di p = r + 1 else: ll, rr = l - 1, r + 1 if ll >= 1 and d > (di := S - ll): d = di p = ll if rr <= N and d > (di := rr - S): d = di p = rr break else: if d > (di := (l - 1) - S): d = di p = l - 1 break print(p) if __name__ == "__main__": if len(sys.argv) == 2: sys.stdin = open(sys.argv[1]) main()
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 41 42 43 44 45 46 47 48 49 50 51 52 | #!/usr/bin/env python3 import sys def main(): N, M, S = [int(x) for x in input().split()] rawlrs = [] for i in range(M): rawlrs.append([int(x) for x in input().split()]) rawlrs.sort() lrs = [] xl, xr = rawlrs[0] for l, r in rawlrs[1:]: if xr + 1 == l: xr = r else: lrs.append([xl, xr]) xl, xr = l, r lrs.append([xl, xr]) d = N p = 0 for l, r in lrs: if l <= S: if r < S: if d > (di := S - (r + 1)): d = di p = r + 1 else: ll, rr = l - 1, r + 1 if ll >= 1 and d > (di := S - ll): d = di p = ll if rr <= N and d > (di := rr - S): d = di p = rr break else: if d > (di := (l - 1) - S): d = di p = l - 1 break print(p) if __name__ == "__main__": if len(sys.argv) == 2: sys.stdin = open(sys.argv[1]) main() |