제출 #98253

#제출 시각아이디문제언어결과실행 시간메모리
98253win11905Network (BOI15_net)C++11
100 / 100
814 ms53116 KiB
/** * code generated by JHelper * More info: https://github.com/AlexeyDmitriev/JHelper * @author win11905 */ #include <bits/stdc++.h> #define all(x) (x).begin(), (x).end() #define vi vector<int> #define iii tuple<int, int, int> #define long long long #define pii pair<int, int> #define x first #define y second using namespace std; const long MOD = 1e9+7, LINF = 1e18 + 1e16; const int INF = 1e9+1; const double EPS = 1e-10; const int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1}; const int N = 5e5+5; class net { private: int n; vector<int> g[N], ans; void dfs(int u, int p) { if(g[u].size() == 1) ans.emplace_back(u); for(int v : g[u]) if(v != p) dfs(v, u); } public: void solve(istream& cin, ostream& cout) { cin >> n; int snode; for(int i = 1, u, v; i < n; ++i) { cin >> u >> v; g[u].emplace_back(v), g[v].emplace_back(u); } for(int i = 1; i <= n; ++i) if(g[i].size() > 1) snode = i; dfs(snode, 0); int m = ((int)ans.size() + 1) >> 1; cout << m << endl; if(ans.size() % 2) cout << snode << ' ' << ans[m-1] << endl; for(int i = 0; i+m < (int)ans.size(); ++i) cout << ans[i] << ' ' << ans[i+m] << endl; } }; class Solver { public: void solve(std::istream& in, std::ostream& out) { net *obj = new net(); obj->solve(in, out); } }; int32_t main() { ios::sync_with_stdio(false); cin.tie(0); Solver solver; std::istream& in(std::cin); std::ostream& out(std::cout); solver.solve(in, out); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

net.cpp: In member function 'void net::solve(std::istream&, std::ostream&)':
net.cpp:34:13: warning: 'snode' may be used uninitialized in this function [-Wmaybe-uninitialized]
         int snode;
             ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...