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