#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; } |
English