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;
}