Submission #1126086

#TimeUsernameProblemLanguageResultExecution timeMemory
1126086TrieTrNewspapers (CEOI21_newspapers)C++20
4 / 100
19 ms23900 KiB
#include<bits/stdc++.h> using namespace std; void local() { #define taskname "" if(fopen(taskname".inp", "r")) { freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout); } } #define ll long long #define fi first #define se second #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); template <class X, class Y> bool mini(X& x, Y y) {return x > y ? x = y, true : false;} template <class X, class Y> bool maxi(X& x, Y y) {return x < y ? x = y, true : false;} const int N = 1e6 + 5; int n, m; vector<int> adj[N]; vector<int> ve; int sz[N]; void pre_dfs(int u, int p = -1) { sz[u] = 1; for(int& v : adj[u]) { if(v == p) continue; pre_dfs(v, u); sz[u] += sz[v]; } } bool dfs(int u, int p = -1) { ve.emplace_back(u); ve.emplace_back(u); int cnt = 0; for(int& v : adj[u]) { if(v == p) continue; if(sz[v] > 1) cnt++; } if(cnt > 1) return false; for(int& v : adj[u]) { if(v == p) continue; if(sz[v] > 1) return dfs(v, u); } return true; } int main() { fastio; local(); cin >> n >> m; if(m > n - 1) return cout << "NO", 0; for(int i = 1; i < n; i++) { int u, v; cin >> u >> v; adj[u].emplace_back(v); adj[v].emplace_back(u); } for(int i = 1; i <= n; i++) { pre_dfs(i); ve.clear(); if(dfs(i)) { cout << "YES\n" << ve.size() << '\n'; for(int& val : ve) cout << val << ' '; return 0; } } cout << "NO"; }

Compilation message (stderr)

newspapers.cpp: In function 'void local()':
newspapers.cpp:7:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |                 freopen(taskname".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
newspapers.cpp:8:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |                 freopen(taskname".out", "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...