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