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