# moze w Pythonie przejdzie? n, m, s = map(int, input().split()) tab = [] for i in range(m): l, r = map(int, input().split()) tab.append((l,r)) #print(n,m,s) #print(tab) tab.sort() sBud = next((i for i, (l,r) in enumerate(tab) if l<=s<=r), -1) #print(tab) #print(sBud) pop = tab[sBud] nex = tab[sBud] for i in range(sBud-1,-1,-1): if(tab[i][1]+1!=pop[0]): break pop=tab[i] #print(pop) for i in range(sBud+1,m): if(tab[i][0]-1!=nex[1]): break nex=tab[i] #print(nex) wl = pop[0]-1 wr = nex[1]+1 wl = 1000000000000000 if wl<1 else wl wr = 1000000000000000 if wr>n else wr rwl =abs(s-wl) rwr =abs(s-wr) wyn = wl if rwl<=rwr else wr if rwl == rwr: wyn = wl if wl<wr else wr print(wyn)
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 | # moze w Pythonie przejdzie? n, m, s = map(int, input().split()) tab = [] for i in range(m): l, r = map(int, input().split()) tab.append((l,r)) #print(n,m,s) #print(tab) tab.sort() sBud = next((i for i, (l,r) in enumerate(tab) if l<=s<=r), -1) #print(tab) #print(sBud) pop = tab[sBud] nex = tab[sBud] for i in range(sBud-1,-1,-1): if(tab[i][1]+1!=pop[0]): break pop=tab[i] #print(pop) for i in range(sBud+1,m): if(tab[i][0]-1!=nex[1]): break nex=tab[i] #print(nex) wl = pop[0]-1 wr = nex[1]+1 wl = 1000000000000000 if wl<1 else wl wr = 1000000000000000 if wr>n else wr rwl =abs(s-wl) rwr =abs(s-wr) wyn = wl if rwl<=rwr else wr if rwl == rwr: wyn = wl if wl<wr else wr print(wyn) |