#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
int main()
{
// cin.tie(0)->sync_with_stdio(0);
ll n, m, s;
cin>>n>>m>>s;
vector<pair<ll, ll>> vec(m);
for(auto& x : vec)
cin>>x.first>>x.second;
ranges::sort(vec);
// for(auto x : vec)
// cout<<x.first<<".."<<x.second<<"\n";
int ss = -1;
for(int i=0; ss==-1; i++)
if(vec[i].second >= s)
ss = i;
// cout<<ss<<";\n";
ll l = vec[ss].first;
ll r = vec[ss].second;
for(int i=ss+1; i<m; i++)
{
if(vec[i].first == r+1)
r = vec[i].second;
else
break;
}
for(int i=ss-1; i>=0; i--)
{
if(vec[i].second == l-1)
l = vec[i].first;
else
break;
}
// cout<<l<<".."<<r<<"\n";
if(r==n)
{
cout<<l-1<<"\n";
}
else if(l==1)
{
cout<<r+1<<"\n";
}
else
{
if(s-l <= r-s)
cout<<l-1<<"\n";
else
cout<<r+1<<"\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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <iostream> #include <vector> #include <algorithm> using namespace std; using ll = long long; int main() { // cin.tie(0)->sync_with_stdio(0); ll n, m, s; cin>>n>>m>>s; vector<pair<ll, ll>> vec(m); for(auto& x : vec) cin>>x.first>>x.second; ranges::sort(vec); // for(auto x : vec) // cout<<x.first<<".."<<x.second<<"\n"; int ss = -1; for(int i=0; ss==-1; i++) if(vec[i].second >= s) ss = i; // cout<<ss<<";\n"; ll l = vec[ss].first; ll r = vec[ss].second; for(int i=ss+1; i<m; i++) { if(vec[i].first == r+1) r = vec[i].second; else break; } for(int i=ss-1; i>=0; i--) { if(vec[i].second == l-1) l = vec[i].first; else break; } // cout<<l<<".."<<r<<"\n"; if(r==n) { cout<<l-1<<"\n"; } else if(l==1) { cout<<r+1<<"\n"; } else { if(s-l <= r-s) cout<<l-1<<"\n"; else cout<<r+1<<"\n"; } } |
English