Submission #480594

#TimeUsernameProblemLanguageResultExecution timeMemory
480594Sohsoh84Network (BOI15_net)C++17
100 / 100
494 ms61484 KiB
//: // ////: /// / : //// / : #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pll; #define all(x) (x).begin(),(x).end() #define X first #define Y second #define sep ' ' #define endl '\n' #define debug(x) cerr << #x << ": " << x << endl; const ll MAXN = 1e6 + 10; int n, tin[MAXN], t; vector<int> adj[MAXN], L; vector<pll> ans; void dfs(int v, int p) { tin[v] = ++t; if (adj[v].size() == 1) L.push_back(v); for (int u : adj[v]) if (u != p) dfs(u, v); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i = 1; i < n; i++) { int u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for (int i = 1; i <= n; i++) { if (adj[i].size() > 1) { dfs(i, 0); break; } } sort(all(L), [] (int a, int b) { return tin[a] < tin[b]; }); for (int i = 0; i < L.size() / 2; i++) ans.push_back({L[i], L[i + L.size() / 2]}); if (L.size() & 1) ans.push_back({L.back(), L.front()}); cout << ans.size() << endl; for (pll e : ans) cout << e.X << sep << e.Y << endl; return 0; }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:54:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for (int i = 0; i < L.size() / 2; i++)
      |                  ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...