#include <bits/stdc++.h> using namespace std; vector<pair<long long, long long>> P; int main() { ios_base::sync_with_stdio(0); cin.tie(0); long long n, s; int m; cin >> n >> m >> s; for(int i=0; i<m; i++){ long long a, b; cin >> a >> b; P.push_back({a, b}); } sort(P.begin(), P.end()); long long l=1, r=n; int k = 0; for(int i=0; i<P.size(); i++){ if(P[i].first <= s && P[i].second >= s){ k = i; l = P[i].first-1; r = P[i].second+1; break; } } for(int i=k-1; i>=0 && P[i].second >= l; i--){ l = P[i].first-1; } for(int i=k+1; i<m && P[i].first <= r; i++){ r = P[i].second+1; } if(l == 0){ cout << r; }else if(r == n+1){ cout << l; }else if(s-l <= r-s){ cout << l; }else{ cout << r; } return 0; }
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 | #include <bits/stdc++.h> using namespace std; vector<pair<long long, long long>> P; int main() { ios_base::sync_with_stdio(0); cin.tie(0); long long n, s; int m; cin >> n >> m >> s; for(int i=0; i<m; i++){ long long a, b; cin >> a >> b; P.push_back({a, b}); } sort(P.begin(), P.end()); long long l=1, r=n; int k = 0; for(int i=0; i<P.size(); i++){ if(P[i].first <= s && P[i].second >= s){ k = i; l = P[i].first-1; r = P[i].second+1; break; } } for(int i=k-1; i>=0 && P[i].second >= l; i--){ l = P[i].first-1; } for(int i=k+1; i<m && P[i].first <= r; i++){ r = P[i].second+1; } if(l == 0){ cout << r; }else if(r == n+1){ cout << l; }else if(s-l <= r-s){ cout << l; }else{ cout << r; } return 0; } |