#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll oo=1e18;
ll n,m,s;
ll better(ll a, ll b){
if (a>b)swap(a,b);
if (abs(s-a)<=abs(s-b))return a;
return b;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> s;
vector<pair<ll,ll>> prz;
for (ll i = 1,l,p; i<=m; i++){
cin >> l >> p;
prz.push_back({l,p});
}
sort(prz.begin(),prz.end());
vector<pair<ll,ll>> good;
good.push_back(prz[0]);
for (ll i = 1; i<m; i++){
if (prz[i].first==good.back().second+1){
pair<ll,ll> tmp=good.back();
good.pop_back();
good.push_back({tmp.first,prz[i].second});
}
else good.push_back(prz[i]);
}
ll ans=-oo;
for (auto [l,p] : good){
if (l>1)ans=better(l-1,ans);
if (p<n)ans=better(p+1,ans);
}
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 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <bits/stdc++.h> using namespace std; #define ll long long ll oo=1e18; ll n,m,s; ll better(ll a, ll b){ if (a>b)swap(a,b); if (abs(s-a)<=abs(s-b))return a; return b; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m >> s; vector<pair<ll,ll>> prz; for (ll i = 1,l,p; i<=m; i++){ cin >> l >> p; prz.push_back({l,p}); } sort(prz.begin(),prz.end()); vector<pair<ll,ll>> good; good.push_back(prz[0]); for (ll i = 1; i<m; i++){ if (prz[i].first==good.back().second+1){ pair<ll,ll> tmp=good.back(); good.pop_back(); good.push_back({tmp.first,prz[i].second}); } else good.push_back(prz[i]); } ll ans=-oo; for (auto [l,p] : good){ if (l>1)ans=better(l-1,ans); if (p<n)ans=better(p+1,ans); } cout << ans << '\n'; } |
English