#include<iostream> #include<vector> #include<utility> #include<algorithm> #define ll long long using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); ll n,m,s,a,b; cin>>n>>m>>s; vector < pair < ll,ll > > tab; for(int i = 0;i<m;++i){ cin>>a>>b; tab.push_back({a,b}); } sort(tab.begin(),tab.end()); int i = 0; while(i+1<tab.size()){ if(tab[i].second+1==tab[i+1].first){ tab[i+1].first = tab[i].first; tab.erase(tab.begin()+i,tab.begin()+i+1); --i; } i+=1; } for (auto p : tab){ if(s>=p.first && s<=p.second){ if(p.first==1){ cout<<p.second+1; } else if(p.second==n){ cout<<p.first-1; } else{ if(abs(p.first-s)<=abs(p.second-s)){ cout<<p.first-1; } else{ cout<<p.second+1; } } break; } } }
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 | #include<iostream> #include<vector> #include<utility> #include<algorithm> #define ll long long using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); ll n,m,s,a,b; cin>>n>>m>>s; vector < pair < ll,ll > > tab; for(int i = 0;i<m;++i){ cin>>a>>b; tab.push_back({a,b}); } sort(tab.begin(),tab.end()); int i = 0; while(i+1<tab.size()){ if(tab[i].second+1==tab[i+1].first){ tab[i+1].first = tab[i].first; tab.erase(tab.begin()+i,tab.begin()+i+1); --i; } i+=1; } for (auto p : tab){ if(s>=p.first && s<=p.second){ if(p.first==1){ cout<<p.second+1; } else if(p.second==n){ cout<<p.first-1; } else{ if(abs(p.first-s)<=abs(p.second-s)){ cout<<p.first-1; } else{ cout<<p.second+1; } } break; } } } |