Submission #1276801

#TimeUsernameProblemLanguageResultExecution timeMemory
1276801sepantaNewspapers (CEOI21_newspapers)C++17
4 / 100
1 ms660 KiB
#include <bits/stdc++.h>
using namespace std;

vector<int> adj[1005];
vector<int> seq;
vector<bool> visited;

void dfs(int u, int p) {
    seq.push_back(u);
    visited[u] = true;
    for (int v : adj[u]) {
        if (!visited[v]) {
            dfs(v, u);
            seq.push_back(u); // backtrack step
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, M;
    cin >> N >> M;

    for (int i = 0; i < M; i++) {
        int u, v;
        cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    // If M >= N, there must be a cycle (graph not a tree)
    if (M >= N) {
        cout << "NO\n";
        return 0;
    }

    visited.assign(N + 1, false);
    dfs(1, -1);

    cout << "YES\n";
    cout << seq.size() << "\n";
    for (int i = 0; i < (int)seq.size(); i++) {
        cout << seq[i] << (i + 1 == (int)seq.size() ? '\n' : ' ');
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...