3 条题解

  • 0
    @ 2025-5-16 20:49:30
    #include <iostream>
    #include <vector>
    #include <algorithm>
    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<Interval> 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;
    ``````cpp
    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;
    }
    
    • 0
      @ 2025-5-16 20:48:41
      #include<bits/stdc++.h>
      using namespace std;
      
      int main()
      {
          int n;
          scanf("%d",&n);
          int min_left=1000000000,max_right=-1000000000;
          int a,b;
          for(int i=0;i<n;i++){
              scanf("%d %d", &a, &b);
              if(a<min_left) min_left=a;
              if(b>max_right) max_right=b;
          }
          int flag=1;
          for(int i=0;i<n;i++){
              scanf("%d %d", &a, &b);
              if(a>max_right || b<min_left){
                  flag=0;
                  break;
              }
          }
          if(flag){
              printf("%d %d\n", min_left,max_right);
          }else{
              printf("no\n");
          }
      return 0;
      }
      
      • 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;
        

        }

        • 1

        信息

        ID
        370
        时间
        1000ms
        内存
        256MiB
        难度
        8
        标签
        (无)
        递交数
        74
        已通过
        14
        上传者