#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pii; const int N = 1e3+10; const ll INF = 1e18; ll n, m, s, l[N], r[N]; void solve() { cin>>n>>m>>s; int j=-1; vector<pii> x; for (int i=1; i<=m; ++i) { cin>>l[i]>>r[i]; x.push_back({l[i], r[i]}); } sort(x.begin(), x.end()); for (int i=1; i<=m; ++i) { l[i] = x[i-1].first, r[i] = x[i-1].second; if (l[i] <= s && s <= r[i]) j=i; } pii ans = {INF, 1}; for (int i=j; i<=m; ++i) { if (i+1 <= m) { if (r[i]+1 < l[i+1]) ans = min(ans, {r[i]+1-s, r[i]+1}); } else { if (r[i]+1 <= n) ans = min(ans, {r[i]+1-s, r[i]+1}); } } for (int i=j; i>=1; --i) { if (i-1 >= 1) { if (l[i]-1 > r[i-1]) ans = min(ans, {s-(l[i]-1), l[i]-1}); } else { if (l[i]-1 >= 1) ans = min(ans, {s-(l[i]-1), l[i]-1}); } } cout<<ans.second<<"\n"; } int main() { int t=1; //cin>>t; while (t--) solve(); }
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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pii; const int N = 1e3+10; const ll INF = 1e18; ll n, m, s, l[N], r[N]; void solve() { cin>>n>>m>>s; int j=-1; vector<pii> x; for (int i=1; i<=m; ++i) { cin>>l[i]>>r[i]; x.push_back({l[i], r[i]}); } sort(x.begin(), x.end()); for (int i=1; i<=m; ++i) { l[i] = x[i-1].first, r[i] = x[i-1].second; if (l[i] <= s && s <= r[i]) j=i; } pii ans = {INF, 1}; for (int i=j; i<=m; ++i) { if (i+1 <= m) { if (r[i]+1 < l[i+1]) ans = min(ans, {r[i]+1-s, r[i]+1}); } else { if (r[i]+1 <= n) ans = min(ans, {r[i]+1-s, r[i]+1}); } } for (int i=j; i>=1; --i) { if (i-1 >= 1) { if (l[i]-1 > r[i-1]) ans = min(ans, {s-(l[i]-1), l[i]-1}); } else { if (l[i]-1 >= 1) ans = min(ans, {s-(l[i]-1), l[i]-1}); } } cout<<ans.second<<"\n"; } int main() { int t=1; //cin>>t; while (t--) solve(); } |