Submission

Status:

[-SSSSSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Quaoar

Problemset: วันว่างๆ

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-04 16:03:01

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin >> n;
    vector <int> time(1001 , 0);
    vector<pair<int , int >> ans;
    int mx = -1;
    int mn = 1001;
    for (int i = 0 ; i < n ; i++){
        int m;
        cin >> m;
        for (int j = 0 ; j < m; j++){
            int s,e;
            cin >> s >> e;
            mn = min(mn , s);
            mx = max(mx , e);
            time[s]++;
            time[e]--;

        }
    }
    for (int i = 1 ; i < 1001 ; i++){
        time[i] = time[i] + time[i - 1];
    }
    int cnt = 0;
    bool notend = false;
    bool ffirst = true;
    /*
    for (int i = mn ; i < mx ; i++){
        cout << time[i] << " ";
    }
    */
    for (int i = mn ; i < mx ; i++){
        int spair;
        if (time[i] == 0 && ffirst){
            spair = i;
            cnt++;
            notend = true;
            ffirst = false;
        } else if (time[i] == 0 && !ffirst){
            cnt++;
            notend = true;
        } else {
            if (notend){
                ans.push_back(make_pair(spair , spair + cnt));
                cnt = 0;
                notend = false;
                ffirst = true;
            }
        }
        
    }
    if (ans.empty()){
        cout << -1;
    }
    for (int i = 0 ; i < ans.size() ; i++){
        cout << ans[i].first << " " << ans[i].second;
        cout << " ";
    }


    return 0;
}