#include <bits/stdc++.h> using namespace std; using vi = vector<int>; using vvi = vector<vi>; using pi = pair<int, int>; using ll = long long; using pl = pair<ll, ll>; #define all(x) x.begin(), x.end() int main() { ll n, s; int m; cin >> n >> m >> s; vector<pl> segments(m); for (int i = 0; i < m; i++) { cin >> segments[i].first >> segments[i].second; } segments.push_back({0, 0}); segments.push_back({n + 1, n + 1}); sort(all(segments)); ll p = -1; ll dist = n + 1; for (int i = 0; i < m + 1; i++) { ll l = segments[i].second + 1; ll r = segments[i + 1].first - 1; if (l > r) continue; if (abs(l - s) < dist) { dist = abs(l - s); p = l; } if (abs(r - s) < dist) { dist = abs(r - s); p = r; } } cout << p << '\n'; return 0; }
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 | #include <bits/stdc++.h> using namespace std; using vi = vector<int>; using vvi = vector<vi>; using pi = pair<int, int>; using ll = long long; using pl = pair<ll, ll>; #define all(x) x.begin(), x.end() int main() { ll n, s; int m; cin >> n >> m >> s; vector<pl> segments(m); for (int i = 0; i < m; i++) { cin >> segments[i].first >> segments[i].second; } segments.push_back({0, 0}); segments.push_back({n + 1, n + 1}); sort(all(segments)); ll p = -1; ll dist = n + 1; for (int i = 0; i < m + 1; i++) { ll l = segments[i].second + 1; ll r = segments[i + 1].first - 1; if (l > r) continue; if (abs(l - s) < dist) { dist = abs(l - s); p = l; } if (abs(r - s) < dist) { dist = abs(r - s); p = r; } } cout << p << '\n'; return 0; } |