#include <bits/stdc++.h> #define FOR(i, a, b) for(int i = a; i <= b; ++i) #define RFOR(i, a, b) for(int i = a; i >= b; --i) #define in insert #define pb push_back #define f first #define s second #define ll long long #define ull unsigned long long #define V vector #define S set #define eb emplace_back #define P pair<long long, long long> #define MS multiset #define BS bitset using namespace std; void solve() { ll n, m, r; cin >> n >> m >> r; vector<P> pr(m); for (int i = 0; i < m; i++) { cin >> pr[i].first >> pr[i].second; } sort(pr.begin(), pr.end()); ll res = LLONG_MAX, wyn = -1; if (pr[0].first > 1) { ll kand = pr[0].first - 1; if (abs(r - kand) < res) { res = abs(r - kand); wyn = kand; } } FOR(i, 1, m - 1) { if (pr[i - 1].second + 1 < pr[i].first) { ll kand1 = pr[i - 1].second + 1; ll kand2 = pr[i].first - 1; if (abs(r - kand1) < res) { res = abs(r - kand1); wyn = kand1; } if (abs(r - kand2) < res) { res = abs(r - kand2); wyn = kand2; } } } if (pr[m - 1].second < n) { ll kand = pr[m - 1].second + 1; if (abs(r - kand) < res) { res = abs(r - kand); wyn = kand; } } cout << wyn << "\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); }
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <bits/stdc++.h> #define FOR(i, a, b) for(int i = a; i <= b; ++i) #define RFOR(i, a, b) for(int i = a; i >= b; --i) #define in insert #define pb push_back #define f first #define s second #define ll long long #define ull unsigned long long #define V vector #define S set #define eb emplace_back #define P pair<long long, long long> #define MS multiset #define BS bitset using namespace std; void solve() { ll n, m, r; cin >> n >> m >> r; vector<P> pr(m); for (int i = 0; i < m; i++) { cin >> pr[i].first >> pr[i].second; } sort(pr.begin(), pr.end()); ll res = LLONG_MAX, wyn = -1; if (pr[0].first > 1) { ll kand = pr[0].first - 1; if (abs(r - kand) < res) { res = abs(r - kand); wyn = kand; } } FOR(i, 1, m - 1) { if (pr[i - 1].second + 1 < pr[i].first) { ll kand1 = pr[i - 1].second + 1; ll kand2 = pr[i].first - 1; if (abs(r - kand1) < res) { res = abs(r - kand1); wyn = kand1; } if (abs(r - kand2) < res) { res = abs(r - kand2); wyn = kand2; } } } if (pr[m - 1].second < n) { ll kand = pr[m - 1].second + 1; if (abs(r - kand) < res) { res = abs(r - kand); wyn = kand; } } cout << wyn << "\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); } |