#include<bits/stdc++.h> using namespace std; using ll = long long; int main() { cin.tie(0)->sync_with_stdio(0); ll n, m, l, r, s; cin >> n >> m >> s;l=r=s; vector<array<ll, 2>> segs(m); for(auto &[l, r] : segs) cin >> l >> r; for(bool cont = true; cont;) { cont = false; for(auto [a, b] : segs) { if(a <= l && l <= b) l = a - 1, cont = true; if(a <= r && r <= b) r = b + 1, cont = true; } } ll ans = 1ll<<50; if(l >= 1 && l <= n && abs(ans-s) > abs(l-s)) ans = l; if(r >= 1 && r <= n && abs(ans-s) > abs(r-s)) ans = r; cout << ans << '\n'; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<bits/stdc++.h> using namespace std; using ll = long long; int main() { cin.tie(0)->sync_with_stdio(0); ll n, m, l, r, s; cin >> n >> m >> s;l=r=s; vector<array<ll, 2>> segs(m); for(auto &[l, r] : segs) cin >> l >> r; for(bool cont = true; cont;) { cont = false; for(auto [a, b] : segs) { if(a <= l && l <= b) l = a - 1, cont = true; if(a <= r && r <= b) r = b + 1, cont = true; } } ll ans = 1ll<<50; if(l >= 1 && l <= n && abs(ans-s) > abs(l-s)) ans = l; if(r >= 1 && r <= n && abs(ans-s) > abs(r-s)) ans = r; cout << ans << '\n'; } |