Submission
Status:
[-SSSSSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Quaoar
Problemset: วันว่างๆ
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-04 16:00:33
#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;
}
}
}
for (int i = 0 ; i < ans.size() ; i++){
cout << ans[i].first << " " << ans[i].second;
cout << " ";
}
return 0;
}