#include <bits/stdc++.h> using namespace std; struct T{ long long p; long long q; }; bool X(T a, T b) { if(a.p<b.p) { return true; } return false; } int main() { long long n, m, s; cin>>n>>m>>s; vector<T>A; for(int i=0; i<m; i++) { long long a, b; cin>>a>>b; A.push_back(T{a, b}); } sort(A.begin(), A.end(), X); int i=0; while(i<m) { if(A[i].p<=s && A[i].q>=s) { break; } i++; } long long bud=-10000000000000; for(int w=i; w>0; w--) { if(A[w].p-1!=A[w-1].q) { bud=A[w].p-1; break; } } if(bud==-10000000000000) { if(A[0].p!=1) { bud=A[0].p-1; } } for(int w=i; w<m-1; w++) { if(A[w].q+1!=A[w+1].p) { if(A[w].q+1-s<s-bud) { bud=A[w].q+1; } break; } } if(A[m-1].q!=n) { if(A[m-1].q+1-s<bud-s && bud>s) { bud=A[m-1].q+1; } if(A[m-1].q+1-s<s-bud && bud<s) { bud=A[m-1].q+1; } } cout<<bud; 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #include <bits/stdc++.h> using namespace std; struct T{ long long p; long long q; }; bool X(T a, T b) { if(a.p<b.p) { return true; } return false; } int main() { long long n, m, s; cin>>n>>m>>s; vector<T>A; for(int i=0; i<m; i++) { long long a, b; cin>>a>>b; A.push_back(T{a, b}); } sort(A.begin(), A.end(), X); int i=0; while(i<m) { if(A[i].p<=s && A[i].q>=s) { break; } i++; } long long bud=-10000000000000; for(int w=i; w>0; w--) { if(A[w].p-1!=A[w-1].q) { bud=A[w].p-1; break; } } if(bud==-10000000000000) { if(A[0].p!=1) { bud=A[0].p-1; } } for(int w=i; w<m-1; w++) { if(A[w].q+1!=A[w+1].p) { if(A[w].q+1-s<s-bud) { bud=A[w].q+1; } break; } } if(A[m-1].q!=n) { if(A[m-1].q+1-s<bud-s && bud>s) { bud=A[m-1].q+1; } if(A[m-1].q+1-s<s-bud && bud<s) { bud=A[m-1].q+1; } } cout<<bud; return 0; } |