#include "iostream"
#include "algorithm"
#include "vector"
#include "utility"
int main() {
long long n, s;
int m;
std::cin >> n >> m >> s;
std::vector<std::pair<long long, long long>> segments;
for (int i = 0; i < m; i++) {
long long l, r;
std::cin >> l >> r;
segments.emplace_back(l, r);
}
std::sort(segments.begin(), segments.end());
std::vector<std::pair<long long, long long>> merged_segments = {segments[0]};
for (int i = 1; i < segments.size(); i++) {
if (merged_segments[merged_segments.size() - 1].second + 1 == segments[i].first) {
merged_segments[merged_segments.size() - 1].second = segments[i].second;
} else {
merged_segments.push_back(segments[i]);
}
}
for (auto seg: merged_segments) {
if (s >= seg.first && s <= seg.second) {
if (s - seg.first <= seg.second - s && seg.first - 1 >= 1) {
std::cout << seg.first - 1 << std::endl;
} else if (seg.second + 1 <= n) {
std::cout << seg.second + 1 << std::endl;
} else {
std::cout << seg.first - 1 << std::endl;
}
return 0;
}
}
}
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 | #include "iostream" #include "algorithm" #include "vector" #include "utility" int main() { long long n, s; int m; std::cin >> n >> m >> s; std::vector<std::pair<long long, long long>> segments; for (int i = 0; i < m; i++) { long long l, r; std::cin >> l >> r; segments.emplace_back(l, r); } std::sort(segments.begin(), segments.end()); std::vector<std::pair<long long, long long>> merged_segments = {segments[0]}; for (int i = 1; i < segments.size(); i++) { if (merged_segments[merged_segments.size() - 1].second + 1 == segments[i].first) { merged_segments[merged_segments.size() - 1].second = segments[i].second; } else { merged_segments.push_back(segments[i]); } } for (auto seg: merged_segments) { if (s >= seg.first && s <= seg.second) { if (s - seg.first <= seg.second - s && seg.first - 1 >= 1) { std::cout << seg.first - 1 << std::endl; } else if (seg.second + 1 <= n) { std::cout << seg.second + 1 << std::endl; } else { std::cout << seg.first - 1 << std::endl; } return 0; } } } |
English