3 条题解
-
0
#include #include #include using namespace std; struct Interval { int left; int right; Interval(int l, int r) : left(l), right(r) {} }; bool compareIntervals(const Interval& a, const Interval& b) { return a.left < b.left; }
int main() { int n; cin >> n; vector intervals; for (int i = 0; i < n; ++i) { int a, b; cin >> a >> b; intervals.emplace_back(a, b); } sort(intervals.begin(), intervals.end(), compareIntervals); int start = intervals[0].left; int end = intervals[0].right; bool canMerge = true; for (int i = 1; i < n; ++i) { if (intervals[i].left <= end) { end = max(end, intervals[i].right); } else { canMerge = false; break; } }
if (canMerge) { cout << start << " " << end << endl; } else { cout << "no" << endl; } return 0;}
信息
- ID
- 370
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 74
- 已通过
- 14
- 上传者