#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
long long m, s;
cin >> n >> m >> s;
vector<pair<long long, long long>> vec(m);
for (int k=0;k<m;k++) {
long long a,b;
cin >> a >> b;
vec[k] = {a, b};
}
vec.push_back({-1e18, 0});
vec.push_back({n + 1, 1e18});
m += 2;
sort(vec.begin(), vec.end());
long long result = (long long)vec[0].first - 1;
int idx_of_school_interval = -1;
for (int k=0;k<m+2;k++) {
if(vec[k].first <= s && vec[k].second >= s) {
idx_of_school_interval = k;
break;
}
}
long long best_left = (long long)1e18;
for (int k=idx_of_school_interval; k > 0; k--) {
if (vec[k-1].second != vec[k].first - 1) {
best_left = vec[k].first - 1;
break;
}
}
long long best_right = (long long)-1e18;
for (int k=idx_of_school_interval; k < m - 1; k++) {
if (vec[k+1].first - 1 != vec[k].second) {
best_right = vec[k].second + 1;
break;
}
}
if (abs(best_left - s) <= abs(best_right - s))
cout << best_left;
else
cout << best_right;
}
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 46 | #include <bits/stdc++.h> using namespace std; int main() { long long n; long long m, s; cin >> n >> m >> s; vector<pair<long long, long long>> vec(m); for (int k=0;k<m;k++) { long long a,b; cin >> a >> b; vec[k] = {a, b}; } vec.push_back({-1e18, 0}); vec.push_back({n + 1, 1e18}); m += 2; sort(vec.begin(), vec.end()); long long result = (long long)vec[0].first - 1; int idx_of_school_interval = -1; for (int k=0;k<m+2;k++) { if(vec[k].first <= s && vec[k].second >= s) { idx_of_school_interval = k; break; } } long long best_left = (long long)1e18; for (int k=idx_of_school_interval; k > 0; k--) { if (vec[k-1].second != vec[k].first - 1) { best_left = vec[k].first - 1; break; } } long long best_right = (long long)-1e18; for (int k=idx_of_school_interval; k < m - 1; k++) { if (vec[k+1].first - 1 != vec[k].second) { best_right = vec[k].second + 1; break; } } if (abs(best_left - s) <= abs(best_right - s)) cout << best_left; else cout << best_right; } |
English