3 条题解

  • 0
    @ 2025-5-16 20:46:34

    #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
    上传者