# 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) |
English