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

int main() {
    i64 n, m, s;
    cin >> n >> m >> s;

    vector<i64> l(m), r(m);
    for (int i = 0; i < m; i++) {
        cin >> l[i] >> r[i];
    }

    pair<i64,i64> res(n+1, 0);
    auto consider = [&](i64 x) {
        if (x < 1 || x > n) return;
        for (int i = 0; i < m; i++) {
            if (l[i] <= x && x <= r[i]) return;
        }
        res = min(res, make_pair(abs(x-s), x));
    };

    for (int i = 0; i < m; i++) {
        consider(l[i]-1);
        consider(r[i]+1);
    }

    cout << res.second << '\n';    
}