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
#include <iostream>
#include <map>
#include <climits>
#include <cstdlib>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long n, m, s, l, r, result = LONG_MIN, mindiff = LONG_MAX;
  cin >> n >> m >> s;
  map< long, long > p;
  while (m--) {
    cin >> l >> r;
    p[l] = r;
  }
  p[n + 1] = 0;
  map< long, long >::iterator it = p.begin();
  l = 0;
  while (it != p.end()) {
    if (it->first > l + 1) {
      m = labs(s - (r = l + 1));
      if (m < mindiff) {
        result = r;
        mindiff = m;
      }
      m = labs(s - (r = it->first - 1));
      if (m < mindiff) {
        result = r;
        mindiff = m;
      }
    }
    l = it++->second;
  }
  cout << result << '\n';
}