#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long n,s;
int m;
vector <pair<long long, long long>> pary;
vector <pair<long long, long long>> najw;
long long pocz;
int main(){
cin>>n>>m>>s;
for(int i=1;i<=m;i++){
long long a,b;
cin>>a>>b;
pary.push_back({a,b});
}
sort(pary.begin(), pary.end());
pocz = pary[0].first;
for(int i=1; i<pary.size(); i++){
if(pary[i-1].second + 1 == pary[i].first){
continue;
} else {
najw.push_back({pocz, pary[i-1].second});
pocz = pary[i].first;
}
}
najw.push_back({pocz, pary[pary.size()-1].second});
pair<long long, long long> interval;
for(auto para: najw){
if(para.first <= s && s <= para.second){
interval = para;
break;
}
}
if(interval.first == 1){
cout<<interval.second + 1<<endl;
return 0;
} else if(interval.second == n){
cout<<interval.first - 1<<endl;
return 0;
} else if (s - interval.first <= interval.second - s){
cout<<interval.first - 1<<endl;
} else {
cout<<interval.second + 1<<endl;
}
}
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 <string> #include <vector> #include <algorithm> using namespace std; long long n,s; int m; vector <pair<long long, long long>> pary; vector <pair<long long, long long>> najw; long long pocz; int main(){ cin>>n>>m>>s; for(int i=1;i<=m;i++){ long long a,b; cin>>a>>b; pary.push_back({a,b}); } sort(pary.begin(), pary.end()); pocz = pary[0].first; for(int i=1; i<pary.size(); i++){ if(pary[i-1].second + 1 == pary[i].first){ continue; } else { najw.push_back({pocz, pary[i-1].second}); pocz = pary[i].first; } } najw.push_back({pocz, pary[pary.size()-1].second}); pair<long long, long long> interval; for(auto para: najw){ if(para.first <= s && s <= para.second){ interval = para; break; } } if(interval.first == 1){ cout<<interval.second + 1<<endl; return 0; } else if(interval.second == n){ cout<<interval.first - 1<<endl; return 0; } else if (s - interval.first <= interval.second - s){ cout<<interval.first - 1<<endl; } else { cout<<interval.second + 1<<endl; } } |
English