#include <bits/stdc++.h>
using namespace std;
#define pb push_back
typedef long long ll;
struct interval {
ll l, r;
bool operator < (const interval i) const {
return l < i.l;
}
};
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll n, s; int m;
cin >> n >> m >> s;
vector <interval> inter = {{0, 0}, {n+1ll, n+1ll}};
for(int i = 0; i < m; ++i) {
ll l, r;
cin >> l >> r;
inter.pb({l, r});
}
sort(inter.begin(), inter.end());
ll dist = n, p;
for(int i = 1; i <= m; ++i) {
ll cand = inter[i].l - 1ll;
if(cand != inter[i - 1].r && abs(s - cand) < dist) {
dist = abs(s - cand);
p = cand;
}
cand = inter[i].r + 1ll;
if(cand != inter[i + 1].l && abs(s - cand) < dist) {
dist = abs(s - cand);
p = cand;
}
}
cout << p << "\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 37 38 39 40 41 42 43 44 45 46 | #include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; struct interval { ll l, r; bool operator < (const interval i) const { return l < i.l; } }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll n, s; int m; cin >> n >> m >> s; vector <interval> inter = {{0, 0}, {n+1ll, n+1ll}}; for(int i = 0; i < m; ++i) { ll l, r; cin >> l >> r; inter.pb({l, r}); } sort(inter.begin(), inter.end()); ll dist = n, p; for(int i = 1; i <= m; ++i) { ll cand = inter[i].l - 1ll; if(cand != inter[i - 1].r && abs(s - cand) < dist) { dist = abs(s - cand); p = cand; } cand = inter[i].r + 1ll; if(cand != inter[i + 1].l && abs(s - cand) < dist) { dist = abs(s - cand); p = cand; } } cout << p << "\n"; return 0; } |
English