Submission #639448

#TimeUsernameProblemLanguageResultExecution timeMemory
639448zordenoNetwork (BOI15_net)C++17
0 / 100
7 ms12052 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]; 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); } ll sum = 0, prv; for (ll i = 0; i < n; i++) { if (adj[i].size() < 2) { sum++; } } cout << ceil(sum * 1.0 / 2.0) << endl; vector <ll> ans; for (ll i = 0; i < n; i++) { if (adj[i].size() < 2) { ans.push_back(i); } } 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) { break; } else { f++; } } cout << x + 1 << " " << f + 1 << endl; } }

Compilation message (stderr)

net.cpp: In function 'int main()':
net.cpp:49: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]
   49 |  for (ll i = 0; i < ans.size() - 1; i += 2)
      |                 ~~^~~~~~~~~~~~~~~~
net.cpp:32:14: warning: unused variable 'prv' [-Wunused-variable]
   32 |  ll sum = 0, prv;
      |              ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...