Submission #1073372

#TimeUsernameProblemLanguageResultExecution timeMemory
1073372andrewpNetwork (BOI15_net)C++14
0 / 100
2 ms12636 KiB
//Dedicated to my love, ivaziva #include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; using ll = int64_t; #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define dbg(x) cerr << #x << ": " << x << '\n'; constexpr int N = 5e5 + 20; int n, dst[N]; vector<int> g[N], le; bool was[N]; void dfs(int x, int p, bool b) { if (g[x].size() == 1 && g[x][0] == p && b) { le.push_back(x); } for (int u: g[x]) { if (u != p) { dst[u] = dst[x] + 1; dfs(u, x, b); } } } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cerr.tie(nullptr); cin >> n; for (int i = 1; i <= n; i++) { dst[i] = 0; was[i] = false; } for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } dfs(1, 0, true); cout << le.size() - 1 << '\n'; int mx = 0, node = 0; for (int i = 0; i < le.size(); i++) { if (mx < dst[le[i]]) { mx = dst[le[i]]; node = le[i]; } } int f = node; cout << 1 << ' ' << node << '\n'; was[node] = true; for (int i = 0; i < le.size(); i++) { if (!was[le[i]]) { for (int j = 1; j <= n; j++) { dst[j] = 0; } dfs(le[i], 0, false); mx = 0, node = 0; for (int j = i + 1; j < le.size(); j++) { if (dst[le[j]] > mx && !was[le[j]]) { mx = dst[le[j]]; node = le[j]; } } if (node == 0) { node = f; } cout << le[i] << ' ' << node << '\n'; was[node] = true; } } return 0; }

Compilation message (stderr)

net.cpp: In function 'int32_t main()':
net.cpp:47:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for (int i = 0; i < le.size(); i++) {
      |                     ~~^~~~~~~~~~~
net.cpp:56:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |     for (int i = 0; i < le.size(); i++) {
      |                     ~~^~~~~~~~~~~
net.cpp:63:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |             for (int j = i + 1; j < le.size(); j++) {
      |                                 ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...