#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
i64 n, m, s;
cin >> n >> m >> s;
vector<i64> l(m), r(m);
for (int i = 0; i < m; i++) {
cin >> l[i] >> r[i];
}
pair<i64,i64> res(n+1, 0);
auto consider = [&](i64 x) {
if (x < 1 || x > n) return;
for (int i = 0; i < m; i++) {
if (l[i] <= x && x <= r[i]) return;
}
res = min(res, make_pair(abs(x-s), x));
};
for (int i = 0; i < m; i++) {
consider(l[i]-1);
consider(r[i]+1);
}
cout << res.second << '\n';
}
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 | #include <bits/stdc++.h> using namespace std; using i64 = long long; int main() { i64 n, m, s; cin >> n >> m >> s; vector<i64> l(m), r(m); for (int i = 0; i < m; i++) { cin >> l[i] >> r[i]; } pair<i64,i64> res(n+1, 0); auto consider = [&](i64 x) { if (x < 1 || x > n) return; for (int i = 0; i < m; i++) { if (l[i] <= x && x <= r[i]) return; } res = min(res, make_pair(abs(x-s), x)); }; for (int i = 0; i < m; i++) { consider(l[i]-1); consider(r[i]+1); } cout << res.second << '\n'; } |
English