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
#include<bits/stdc++.h>
using namespace std;
#define int long long
long long n, s;
int m;
vector<pair<long long, long long>> prz, prz2;
int32_t main()
{
    cin >> n >> m >> s;
    for(int i = 0; i < m; i++)
    {
        long long a, b; cin >> a >> b;
        prz.push_back({a, b});
    }

    sort(prz.begin(), prz.end());
    prz2.push_back({prz[0].first, 0LL});
    for(int i = 1; i < prz.size(); i++)
    {
        if(prz[i].first != prz[i - 1].second + 1)
        {
            prz2[prz2.size() - 1].second = prz[i - 1].second;
            prz2.push_back({prz[i].first, 0LL});
        }
    }
    prz2[prz2.size() - 1].second = prz[prz.size() - 1].second;

    for(auto p : prz2)
    {
        if(s >= p.first && s <= p.second)
        {
            if(p.second == n) cout << p.first - 1;
            else if(p.first == 1) cout << p.second + 1;
            else if(s - p.first <= p.second - s) cout << p.first - 1;
            else cout << p.second + 1;
            return 0;
        }
    }
}