#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
long long n, m, s, a, b;
cin>>n>>m>>s;
vector <pair<long long, long long>> p(m);
for (int i=0; i<m; i++)
{
cin>>a>>b;
p[i]={a, b};
}
sort(p.begin(), p.end());
long long mini=LLONG_MAX, w;
for (int i=0; i<m; i++)
{
long long l=LLONG_MAX;
if (i>0) {
if (abs(p[i].first-p[i-1].second)!=1) {
l=p[i].first-1;
}
}
else {
if (p[i].first!=1) l=p[i].first-1;
}
long long r=LLONG_MAX;
if (i<m-1) {
if (abs(p[i].second-p[i+1].first)!=1) {
r=p[i].second+1;
}
}
else if (p[i].second!=n) r=p[i].second+1;
long long one=abs(s-l), two=abs(s-r);
if (one<=two) {
if (one<mini) {
mini=one;
w=l;
}
}
else {
if (two<mini) {
mini=two;
w=r;
}
}
}
cout<<w;
}
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 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n, m, s, a, b; cin>>n>>m>>s; vector <pair<long long, long long>> p(m); for (int i=0; i<m; i++) { cin>>a>>b; p[i]={a, b}; } sort(p.begin(), p.end()); long long mini=LLONG_MAX, w; for (int i=0; i<m; i++) { long long l=LLONG_MAX; if (i>0) { if (abs(p[i].first-p[i-1].second)!=1) { l=p[i].first-1; } } else { if (p[i].first!=1) l=p[i].first-1; } long long r=LLONG_MAX; if (i<m-1) { if (abs(p[i].second-p[i+1].first)!=1) { r=p[i].second+1; } } else if (p[i].second!=n) r=p[i].second+1; long long one=abs(s-l), two=abs(s-r); if (one<=two) { if (one<mini) { mini=one; w=l; } } else { if (two<mini) { mini=two; w=r; } } } cout<<w; } |
English