#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long n,m,s;
cin>>n>>m>>s;
vector<pair<long long, long long>> in;
for (int i=0; i<m; i++) {
long long l,r;
cin>>l>>r;
in.push_back({l,r});
}
sort(in.begin(), in.end());
int ii = -1;
for (int i=0; i<m; i++) {
if (s < in[i].first || s > in[i].second) continue;
ii = i;
break;
}
long long pl = in[ii].first-1, pr = in[ii].second+1;
for (int i=ii-1; i>=0; i--) if (pl == in[i].second) pl = in[i].first-1;
for (int i=ii+1; i<m; i++) if (pr == in[i].first) pr = in[i].second+1;
if (pl < 1) cout<<pr<<'\n';
else if (pr > n) cout<<pl<<'\n';
else if (s-pl > pr-s) cout<<pr<<'\n';
else cout<<pl<<'\n';
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 | #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long long n,m,s; cin>>n>>m>>s; vector<pair<long long, long long>> in; for (int i=0; i<m; i++) { long long l,r; cin>>l>>r; in.push_back({l,r}); } sort(in.begin(), in.end()); int ii = -1; for (int i=0; i<m; i++) { if (s < in[i].first || s > in[i].second) continue; ii = i; break; } long long pl = in[ii].first-1, pr = in[ii].second+1; for (int i=ii-1; i>=0; i--) if (pl == in[i].second) pl = in[i].first-1; for (int i=ii+1; i<m; i++) if (pr == in[i].first) pr = in[i].second+1; if (pl < 1) cout<<pr<<'\n'; else if (pr > n) cout<<pl<<'\n'; else if (s-pl > pr-s) cout<<pr<<'\n'; else cout<<pl<<'\n'; return 0; } |
English