Submission #639445

#TimeUsernameProblemLanguageResultExecution timeMemory
639445zordenoNetwork (BOI15_net)C++17
0 / 100
8 ms15956 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); vector <ll> frq(MAX); 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); frq[u]++, frq[v]++; } ll sum = 0, prv; for (ll i = 0; i < n; i++) { if (frq[i] < 2) { sum++; } } cout << ceil(sum * 1.0 / 2.0) << endl; sum = 0; for (ll i = 0; i < n; i++) { if (frq[i] < 2) { sum++; if (sum % 2 == 0) { cout << prv + 1 << " " << i + 1 << endl; adj[prv].push_back(i); adj[i].push_back(prv); } prv = i; } } if (sum % 2 != 0) { for (ll i = n - 1; i >= 0; i--) { if (frq[i] < 2) { for (ll j = 0; j < n; j++) { bool flag = 0; for (auto child : adj[i]) { if (child == j) { flag = 1; break; } } if (!flag) { cout << i + 1 << " " << j + 1 << endl; return 0; } } } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...