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
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	long long n, m, s, a, b;
	cin>>n>>m>>s;
	vector <pair<long long, long long>> p(m);
	for (int i=0; i<m; i++)
	{
	    cin>>a>>b;
	    p[i]={a, b};
	}
	sort(p.begin(), p.end());
    long long mini=LLONG_MAX, w;
    for (int i=0; i<m; i++)
    {
        long long l=LLONG_MAX;
        if (i>0) {
            if (abs(p[i].first-p[i-1].second)!=1) {
                l=p[i].first-1;
            }
        }
        else {
            if (p[i].first!=1) l=p[i].first-1;
        }
        long long r=LLONG_MAX;
        if (i<m-1) {
            if (abs(p[i].second-p[i+1].first)!=1) {
                r=p[i].second+1;
            }
        }
        else if (p[i].second!=n) r=p[i].second+1;
        long long one=abs(s-l), two=abs(s-r);
        if (one<=two) {
            if (one<mini) {
                mini=one;
                w=l;
            }
        }
        else {
            if (two<mini) {
                mini=two;
                w=r;
            }
        }
    }
    cout<<w;
}