#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
long long n,m,s;
long long l,r;
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(NULL);
std::cin>>n>>m>>s;
std::vector<std::pair<long long,long long>>pro;
for(int i=0;i<m;i++){
std::cin>>l>>r;
pro.emplace_back(l,r);
}
sort(pro.begin(),pro.end());
long long pop=0;
long long best=2e12;
long long result=0;
for(auto x:pro){
if(x.first>pop+1)
if(x.first<=s){
if(s-x.first+1<best){
best=s-x.first+1;
result=x.first-1;
}
}else
if(pop-s+1<best){
best=pop-s+1;
result=pop+1;
}
pop=x.second;
}
if(pop<n)
if(pop-s+1<best){
best=pop-s+1;
result=pop+1;
}
std::cout<<result<<"\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 | #include <iostream> #include <vector> #include <algorithm> #include <iomanip> long long n,m,s; long long l,r; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(NULL); std::cin>>n>>m>>s; std::vector<std::pair<long long,long long>>pro; for(int i=0;i<m;i++){ std::cin>>l>>r; pro.emplace_back(l,r); } sort(pro.begin(),pro.end()); long long pop=0; long long best=2e12; long long result=0; for(auto x:pro){ if(x.first>pop+1) if(x.first<=s){ if(s-x.first+1<best){ best=s-x.first+1; result=x.first-1; } }else if(pop-s+1<best){ best=pop-s+1; result=pop+1; } pop=x.second; } if(pop<n) if(pop-s+1<best){ best=pop-s+1; result=pop+1; } std::cout<<result<<"\n"; } |
English