#include "bits/stdc++.h" #define int long long #define pi pair<long long, long long> #define meow main using namespace std; signed meow() { cin.tie((ostream *)!ios::sync_with_stdio(false)); int n, m, s; cin >> n >> m >> s; vector<pi> taken(m); for (auto &[l, r] : taken) cin >> l >> r; sort(taken.begin(), taken.end()); int best_l = LLONG_MIN; int mid; for (mid = 0; mid < m; mid++) { if (taken[mid].first <= s && s <= taken[mid].second) break; } int res_l = LLONG_MIN; for (int i = mid; i >= 0; i--) { if ((i == 0 || taken[i].first - 1 != taken[i - 1].second) && taken[i].first - 1 > 0) { res_l = taken[i].first - 1; break; } } int res_r = LLONG_MIN; for (int i = mid; i < m; i++) { if ((i == m - 1 || taken[i].second + 1 != taken[i + 1].first) && taken[i].second + 1 <= n) { res_r = taken[i].second + 1; break; } } if (res_r == LLONG_MIN) { cout << res_l << '\n'; return 0; } if (res_l == LLONG_MIN) { cout << res_r << '\n'; return 0; } if (s - res_l <= res_r - s) { cout << res_l << '\n'; } else cout << res_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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include "bits/stdc++.h" #define int long long #define pi pair<long long, long long> #define meow main using namespace std; signed meow() { cin.tie((ostream *)!ios::sync_with_stdio(false)); int n, m, s; cin >> n >> m >> s; vector<pi> taken(m); for (auto &[l, r] : taken) cin >> l >> r; sort(taken.begin(), taken.end()); int best_l = LLONG_MIN; int mid; for (mid = 0; mid < m; mid++) { if (taken[mid].first <= s && s <= taken[mid].second) break; } int res_l = LLONG_MIN; for (int i = mid; i >= 0; i--) { if ((i == 0 || taken[i].first - 1 != taken[i - 1].second) && taken[i].first - 1 > 0) { res_l = taken[i].first - 1; break; } } int res_r = LLONG_MIN; for (int i = mid; i < m; i++) { if ((i == m - 1 || taken[i].second + 1 != taken[i + 1].first) && taken[i].second + 1 <= n) { res_r = taken[i].second + 1; break; } } if (res_r == LLONG_MIN) { cout << res_l << '\n'; return 0; } if (res_l == LLONG_MIN) { cout << res_r << '\n'; return 0; } if (s - res_l <= res_r - s) { cout << res_l << '\n'; } else cout << res_r << '\n'; } |