Submission #1363714

#TimeUsernameProblemLanguageResultExecution timeMemory
1363714hsuan._.0528Social Engineering (EGOI22_socialengineering)C++20
15 / 100
379 ms12956 KiB
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pii pair<int, int>
#define F first
#define S second
const int maxn =5e5+10;
const int mod=1e9+7;

int n, m;
int vis[maxn];
vector<pii> v[maxn];

int dfs(int x, int last){
    if(x==1)  return 1;
    for(auto[y, id]: v[x]){
        if(y==last)  continue;
        return dfs(y, x);
    }
    return 0;
}


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



signed main(){
    //ios_base::sync_with_stdio(0);  cin.tie(0);
    cin>>n>>m;
    for(int i=0; i<m; i++){
        int x, y;  cin>>x>>y;
        v[x].push_back( {y, i} );
        v[y].push_back( {x, i} );
    }
    for(auto[y, id]: v[1]){
        if( dfs(y, 1)==0 ){
            cout << "NO" << endl;
            return 0;
        }
    }
    cout << "YES" << endl;
    int cur=1, last=1;
    while(true){
        cur=GetMove();
        last=1;
        if(cur==0){  return 0;  }
        while(cur!=1){
            for(auto[y, id]: v[cur]){
                if(y!=last){
                    last=cur, cur=y;
                    break;
                }
            }
            MakeMove(cur);
        }
    }
   // cout << "NO" << endl;
    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...