#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e3 + 7;
pair<ll, ll> inters[MAXN];
int main() {
ios_base::sync_with_stdio(0);
ll n, m, s; cin >> n >> m >> s;
for (int i = 0; i < m; ++i) {
cin >> inters[i].first >> inters[i].second;
}
sort(inters, inters + m);
int idx = 0;
for (int i = 0; i < m; ++i) {
if (inters[i].first <= s && inters[i].second >= s) {
idx = i;
break;
}
}
int org = idx;
ll l = inters[idx].first - 1;
while (idx > 0 && inters[idx - 1].second == l) {
l = inters[--idx].first - 1;
}
idx = org;
ll r = inters[idx].second + 1;
while (idx < m - 1 && inters[idx + 1].first == r) {
r = inters[++idx].second + 1;
}
if (l == 0) cout << r << "\n";
else if (r == n + 1) cout << l << "\n";
else {
if (s - l <= r - s) cout << l << "\n";
else cout << r << "\n";
}
}
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; typedef long long ll; const int MAXN = 1e3 + 7; pair<ll, ll> inters[MAXN]; int main() { ios_base::sync_with_stdio(0); ll n, m, s; cin >> n >> m >> s; for (int i = 0; i < m; ++i) { cin >> inters[i].first >> inters[i].second; } sort(inters, inters + m); int idx = 0; for (int i = 0; i < m; ++i) { if (inters[i].first <= s && inters[i].second >= s) { idx = i; break; } } int org = idx; ll l = inters[idx].first - 1; while (idx > 0 && inters[idx - 1].second == l) { l = inters[--idx].first - 1; } idx = org; ll r = inters[idx].second + 1; while (idx < m - 1 && inters[idx + 1].first == r) { r = inters[++idx].second + 1; } if (l == 0) cout << r << "\n"; else if (r == n + 1) cout << l << "\n"; else { if (s - l <= r - s) cout << l << "\n"; else cout << r << "\n"; } } |
English