Submission #639530

#TimeUsernameProblemLanguageResultExecution timeMemory
639530zordenoNetwork (BOI15_net)C++17
0 / 100
7 ms12116 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' #define ll long long const ll MOD = 1e9 + 7, MAX = 5e5 + 5, INF = 1e18; vector <int> dx = { 1, 0, 0, -1, 1, 1, -1, -1 }; vector <int> dy = { 0, 1, -1, 0, -1, 1, 1, -1 }; ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } vector <ll> adj[MAX]; vector <bool> vis(MAX); vector <ll> ans; void dfs(ll node) { if (adj[node].size() == 1) { ans.push_back(node); } vis[node] = true; for (auto child : adj[node]) { if (!vis[child]) { dfs(child); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("", "r", stdin); //freopen("", "w", stdout); ll n; cin >> n; for (ll i = 0; i < n - 1; i++) { ll u, v; cin >> u >> v; u--, v--; adj[u].push_back(v); adj[v].push_back(u); } dfs(0); cout << ceil(ans.size() * 1.0 / 2.0) << endl; for (ll i = 0; i < ans.size() - 1; i += 2) { cout << ans[i] + 1 << " " << ans[i + 1] + 1 << endl; adj[ans[i]].push_back(ans[i + 1]); adj[ans[i + 1]].push_back(ans[i]); } if (ans.size() % 2 != 0) { ll x = ans.back(), f = 0; sort(adj[x].begin(), adj[x].end()); for (auto child : adj[x]) { if (child != f && f != x) { break; } else { f++; } } cout << x + 1 << " " << f + 1 << endl; } }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:52:19: 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]
   52 |  for (ll i = 0; i < ans.size() - 1; i += 2)
      |                 ~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...