제출 #1108735

#제출 시각아이디문제언어결과실행 시간메모리
1108735PekibanNewspapers (CEOI21_newspapers)C++17
0 / 100
1 ms336 KiB
#include <bits/stdc++.h>
    
using namespace std;
#define pb push_back
    
const int N = 1e3+5;
vector<int> g[N], b;
void dfs(int s, int e = -1) {
    bool t = 0;
    b.pb(s);
    for (auto u : g[s]) {
        if (u == e) continue;
        if (t && g[u].size() > 1) {
            cout << "NO\n";
            exit(0);
        }
        if (g[u].size() > 1) {
            dfs(u, s);
            t = 1;
        }
    }
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= m; ++i) {
        int u, v;
        cin >> u >> v;
        g[u].pb(v);
        g[v].pb(u);
    }
    if (m >= n) {
        cout << "NO\n";
        exit(0);
    }
    for (int i = 1; i <= n; ++i) {
        if (g[i].size() > 1) {
            int t = 1;
            for (auto u : g[i]) {
                if (g[u].size() > 1)    t--;
            }
            if (t >= 0) {
                dfs(i);
                cout << "YES" << '\n';
                if (b.size() & 1) {
                    cout << 2*b.size() << '\n';
                    for (auto x : b)    cout << x << ' ';
                    for (auto x : b)    cout << x << ' ';
                    cout << '\n';
                }
                else {
                    cout << 2*b.size() << '\n';
                    for (auto x : b)    cout << x << ' ';
                    reverse(b.begin(), b.end());
                    for (auto x : b)    cout << x << ' ';
                    cout << '\n';
                }
                return 0;
            }
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...