/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Wrong Answer 1ms 540.0 KiB
#3 Wrong Answer 7ms 540.0 KiB

Code

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int t;
    cin >> t; // Number of test cases

    while (t--) {
        int n;
        cin >> n; // Number of segments
        
        vector<pair<int, int>> segments(n);
        
        // Reading the segments
        for (int i = 0; i < n; ++i) {
            cin >> segments[i].first >> segments[i].second;
        }
        
        // Sorting the segments based on the left endpoint
        sort(segments.begin(), segments.end());
        
        vector<int> result;
        int last_chosen = -1;
        bool possible = true;
        
        // Greedy approach to select the elements
        for (int i = 0; i < n; ++i) {
            int l = segments[i].first;
            int r = segments[i].second;
            
            // We need to pick a number that is greater than last_chosen and <= r
            if (last_chosen + 1 <= r) {
                int chosen = max(last_chosen + 1, l);
                result.push_back(chosen);
                last_chosen = chosen;
            } else {
                possible = false;
                break;
            }
        }
        
        // Output the result
        if (possible) {
            cout << "YES\n";
            for (int i = 0; i < n; ++i) {
                cout << result[i] << " ";
            }
            cout << "\n";
        } else {
            cout << "NO\n";
        }
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1185 Segment
Language
C++17 (G++ 13.2.0)
Submit At
2025-03-24 20:11:43
Judged At
2025-03-24 20:11:43
Judged By
Score
2
Total Time
7ms
Peak Memory
540.0 KiB