#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; } |
English