Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: qwerty

Problemset: วันว่างๆ

Language: cpp

Time: 0.010 second

Submitted On: 2025-08-19 13:18:54

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

int dp[1001];
int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int n;
    cin >> n;
    // vector<int> dp(1e3+1, 0);
    int minn = INT_MAX, maxx = INT_MIN;
    for (int i = 0 ; i < n ; i++) {
        int m;
        cin >> m;
        while(m--) {
            int a,b;
            cin >> a >> b;
            dp[a]++;
            dp[b]--;
            minn = min(minn, a);
            maxx = max(maxx, b);
        }
    }

    for (int i = 0 ; i <= 1000 ; i++) dp[i]+=dp[i-1];
    maxx--;
    vector<int> ans;
    for (int i = minn ; i <= maxx ; i++) {
        if (!dp[i] && dp[i-1]) ans.push_back(i); // 1 [0]
        else if (i != minn && dp[i] && !dp[i-1]) ans.push_back(i); // 0 [1]
    }

    if (ans.size() == 0) cout << -1;
    else for (auto i : ans) cout << i << " ";
}

/*3
2 1 2 5 6
1 1 3
1 4 10

1++ 2- 3- 4+ 5+ 6- 7 8 9 10-
*/