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