Submission #1354532

#TimeUsernameProblemLanguageResultExecution timeMemory
1354532yyc000123Sopsug (EGOI23_sopsug)C++20
0 / 100
16 ms6456 KiB
#include<bits/stdc++.h>
using namespace std ;
#define F first
#define S second
const int N = 3e5+5 ;
int n , m , k , a , b , c , d , par[N] ;
vector<pair<int,int>> ans ;

int p(int k){
    if(par[k]<0) return k ;
    else return par[k]=p(par[k]) ;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) ;
    memset(par,-1,sizeof(par)) ;
    cin >> n >> m >> k ;
    // m = 0 , k = 2
    cin >> a >> b >> c >> d ;
    if(n==2){
        cout << "NO\n" ;
        return 0 ;
    }
    if(a==d && b==c){
        int temp ;
        for(int i=0 ; i<3 ; i++){
            if(i!=a && i!=b) temp=i ;
        }
        ans.push_back({a,temp}) ;
        ans.push_back({b,temp}) ;
        par[a]=par[b]=temp ;
    }
    else if(b==d){
        ans.push_back({b,a}) ;
        par[b]=a ;
    }
    else{
        ans.push_back({b,a}) ;
        ans.push_back({d,c}) ;
        par[b]=a ; par[d]=c ;
    }
    int root = -1 ;
    for(int i=0 ; i<n ; i++){
        if(par[i]>=0) continue ;
        if(root==-1){
            root=i ; continue ;
        }
        ans.push_back({i,root}) ;
    }
    if(ans.size()!=n-1){
        cout << "NO\n" ; return 0 ;
    }
    for(int i=0 ; i<ans.size() ; i++) cout << ans[i].F << ' ' << ans[i].S << '\n' ;
    return 0 ;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...