Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Quaoar
Problemset: วันว่างๆ
Language: cpp
Time: 0.024 second
Submitted On: 2026-03-11 20:28:25
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int mx = -1;
int mn = 1e9;
vector<int> arr(1001 , 0);
for (int i = 0 ; i < n ; i++){
int m;
cin >> m;
for (int j = 0 ; j < m ; j++){
int a , b;
cin >> a >> b;
mn = min(a , mn);
mx = max(b , mx);
arr[a]--;
arr[b]++;
}
}
for (int i = mn + 1; i <= mx ; i++){
arr[i] += arr[i - 1];
}
arr[mx] = 1e9;
arr[mn - 1] = -1e9;
// for (int i = 0 ; i <= mx + 1; i++) cout << arr[i] << " ";
bool exist = false;
for (int i = mn ; i <= mx; i++){
int start;
int cnt;
int end;
if (arr[i] == 0){
start = i;
cnt = 1;
while (cnt){
if (arr[start + cnt] == 0){
cnt++;
} else {
end = start + cnt;
cnt = 0;
}
}
cout << start << " " << end << " ";
exist = true;
i = end;
}
}
if (!exist){
cout << -1;
}
return 0;
}