#include <iostream>
#include <map>
#include <climits>
#include <cstdlib>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long n, m, s, l, r, result = LONG_MIN, mindiff = LONG_MAX;
cin >> n >> m >> s;
map< long, long > p;
while (m--) {
cin >> l >> r;
p[l] = r;
}
p[n + 1] = 0;
map< long, long >::iterator it = p.begin();
l = 0;
while (it != p.end()) {
if (it->first > l + 1) {
m = labs(s - (r = l + 1));
if (m < mindiff) {
result = r;
mindiff = m;
}
m = labs(s - (r = it->first - 1));
if (m < mindiff) {
result = r;
mindiff = m;
}
}
l = it++->second;
}
cout << result << '\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 | #include <iostream> #include <map> #include <climits> #include <cstdlib> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); long n, m, s, l, r, result = LONG_MIN, mindiff = LONG_MAX; cin >> n >> m >> s; map< long, long > p; while (m--) { cin >> l >> r; p[l] = r; } p[n + 1] = 0; map< long, long >::iterator it = p.begin(); l = 0; while (it != p.end()) { if (it->first > l + 1) { m = labs(s - (r = l + 1)); if (m < mindiff) { result = r; mindiff = m; } m = labs(s - (r = it->first - 1)); if (m < mindiff) { result = r; mindiff = m; } } l = it++->second; } cout << result << '\n'; } |
English