#include <bits/stdc++.h> using namespace std; #define loop(i, a, b) for(int i = a; i <= b; i++) #define all(x) x.begin(), x.end() #define pb push_back using ll = int64_t; int main() { cin.tie(0)->sync_with_stdio(0); ll m; cin >> m; int n; cin >> n; ll s; cin >> s; vector<pair<ll, ll>> ranges; map<ll, int> used; loop(i, 1, n) { ll a, b; cin >> a >> b; ranges.pb({ a, b }); used[a] = used[b] = 1; } sort(all(ranges)); ll res = 1e18; for(auto [ a, b ] : ranges) { for(ll coord : { a-1, b+1 }) { if(coord < 1 || coord > m) continue; if(used[coord]) continue; if(abs(s - coord) < abs(s - res)) { res = coord; } } } cout << res << '\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 30 31 32 33 34 35 36 37 38 39 40 | #include <bits/stdc++.h> using namespace std; #define loop(i, a, b) for(int i = a; i <= b; i++) #define all(x) x.begin(), x.end() #define pb push_back using ll = int64_t; int main() { cin.tie(0)->sync_with_stdio(0); ll m; cin >> m; int n; cin >> n; ll s; cin >> s; vector<pair<ll, ll>> ranges; map<ll, int> used; loop(i, 1, n) { ll a, b; cin >> a >> b; ranges.pb({ a, b }); used[a] = used[b] = 1; } sort(all(ranges)); ll res = 1e18; for(auto [ a, b ] : ranges) { for(ll coord : { a-1, b+1 }) { if(coord < 1 || coord > m) continue; if(used[coord]) continue; if(abs(s - coord) < abs(s - res)) { res = coord; } } } cout << res << '\n'; } |