Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Neozaawwman1
Problemset: วันว่างๆ
Language: cpp
Time: 0.025 second
Submitted On: 2026-03-10 17:37:58
#include <bits/stdc++.h>
using namespace std;
int N, m=0;
bool dp[1005][1005];
queue<pair<int,int>> q;
void check(int y, int x){
for(int i=y; i<x; i++){
for(int j=i+1; j<=m; j++){
dp[i][j]=1;
}
}
}
int main(){
ios_base::sync_with_stdio(0),cin.tie(0);
cin>>N;
while(N--){
int n;cin>>n;
while(n--){
int a,b;cin>>a>>b;
m=max(m,b);
q.push({a,b});
}
}
while(!q.empty()){
int y = q.front().first;
int x = q.front().second;
q.pop();
check(y,x);
}
for(int i=m; i>=1; i--){
for(int j=i+1; j<=m ;j++){
if(dp[i][j]==0){
if(dp[i+1][j]==1){
dp[i][j]=1;
}
}
}
}
vector<int> ans;
for(int i=1; i<=m; i++){
for(int j=i+1; j<=m; j++){
if(dp[i][j]==0){
if(dp[i-1][j]==1 && dp[i][j+1]){
ans.push_back(i);
ans.push_back(j);
}
}
}
}
if(ans.empty()){
cout<<-1;
}else {
for(auto ele: ans){
cout<<ele<<' ';
}
}
return 0;
}