제출 #605089

#제출 시각아이디문제언어결과실행 시간메모리
605089tamthegodNetwork (BOI15_net)C++14
0 / 100
12 ms23764 KiB
#include<bits/stdc++.h> #define int long long #define pb push_back #define fi first #define se second using namespace std; using ll = long long; using ld = long double; using ull = unsigned long long; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int maxN = 1e6 + 5; const int mod = 1e9 + 7; const ll oo = 1e18; int n; vector<int> adj[maxN]; int depth[maxN]; void ReadInput() { cin >> n; for(int i=1; i<n; i++) { int u, v; cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } } void dfs(int u, int par) { for(int v : adj[u]) { if(v == par) continue; depth[v] = depth[u] + 1; dfs(v, u); } } void Solve() { dfs(1, 0); vector<int> leaf; for(int i=1; i<=n; i++) { if(adj[i].size() == 1) leaf.pb(i); } sort(leaf.begin(), leaf.end(), [](int i, int j) { return (depth[i] < depth[j] || depth[i] == depth[j] && i > j); }); int l = 0, step = leaf.size() / 2; if(leaf.size() % 2 == 0) { cout << leaf.size() / 2 << '\n'; while(l + step < leaf.size()) { cout << leaf[l] << " " << leaf[l + step] << '\n'; l++; } return; } cout << leaf.size() / 2 + 1 << '\n'; while(l + step < leaf.size() - 1) { cout << leaf[l] << " " << leaf[l + step] << '\n'; l++; } for(int i=1; i<=n; i++) { if(i != adj[leaf.back()][0]) { cout << leaf.back() << " " << i; return; } } } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); ReadInput(); Solve(); }

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

net.cpp: In lambda function:
net.cpp:48:61: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   48 |         return (depth[i] < depth[j] || depth[i] == depth[j] && i > j);
      |                                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
net.cpp: In function 'void Solve()':
net.cpp:54:24: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |         while(l + step < leaf.size())
      |               ~~~~~~~~~^~~~~~~~~~~~~
net.cpp:62:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     while(l + step < leaf.size() - 1)
      |           ~~~~~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...