Submission #1363301

#TimeUsernameProblemLanguageResultExecution timeMemory
1363301yyc000123Social Engineering (EGOI22_socialengineering)C++20
0 / 100
5075 ms580 KiB
#include<bits/stdc++.h>
using namespace std ;
#define F first
#define S second
const int N = 2e5+5 ;
const int M = 4e5+5 ;
int n , m , vis[N] ;
vector<pair<int,int>> nei[N] ;

int GetMove(){
    int ret ; cin >> ret ; return ret ;
}
void MakeMove(int v){
    cout << v << endl ;
}

void dfs(int node , int par){
    vis[node] = 1 ;
    for(auto it:nei[node]){
        if(vis[it.F] || it.F==par) continue ;
        dfs(it.F,node) ;
    }
}

int main(){
    cin >> n >> m ;
    for(int i=0 ; i<m ; i++){
        int u , v ; cin >> u >> v ;
        nei[u].push_back({v,i}) ; nei[v].push_back({u,i}) ;
    }
    for(auto it:nei[1]){
        if(vis[it.F]) continue ;
        vis[1] = 0 ;
        dfs(it.F,1) ;
        if(!vis[1]){
            cout << "NO" << endl ;
            return 0 ;
        }
    }
    cout << "YES" << endl ;
    while(true){
        int temp = GetMove() , last = 1 ;
        if(!temp) break ;
        while(temp!=1){
            for(auto it:nei[temp]){
                if(it.F!=last){
                    MakeMove(it.F) , last = temp , temp = it.F ; break ;
                }
            }
        }
    }
    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...