Submission #723047

#TimeUsernameProblemLanguageResultExecution timeMemory
723047gagik_2007Village (BOI20_village)C++17
50 / 100
85 ms21836 KiB
#include <iostream> #include <algorithm> #include <string> #include <vector> #include <cmath> #include <chrono> #include <ctime> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <limits> #include <iomanip> #include <unordered_set> #include <unordered_map> #include <fstream> #include <functional> #include <random> #include <cassert> using namespace std; typedef long long ll; typedef long double ld; #define ff first #define ss second ll ttt; const ll INF = 1e18; const ll MOD = 1e9 + 7; const ll N = 200007; const ll M = 307; const ll LG = 31; ll n, m, k; vector<int>g[N]; vector<int>res_mn; ll ans_mn = 0; bool used[N]; void dfs(int v, int par = -1) { for (int to : g[v]) { if (to != par) { dfs(to, v); } } vector<int>leaves; for (int to : g[v]) { if (to != par) { if (!used[to]) { leaves.push_back(to); } } } if (leaves.size() != 0) { ans_mn += leaves.size() * 2; res_mn[v] = leaves[0]; for (int i = 0; i < leaves.size() - 1; i++) { res_mn[leaves[i]] = leaves[i + 1]; } res_mn[leaves[leaves.size() - 1]] = v; for (int to : leaves) { used[to] = true; } used[v] = true; } } int main() { //freopen("in.txt", "r", stdin); ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; int leaf = 0; for (int i = 0; i < n - 1; i++) { int x, y; cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } for (int v = 1; v <= n; v++) { if (g[v].size() == 1) { leaf = v; break; } } int root = g[leaf][0]; res_mn.resize(n + 1, 0); dfs(root); cout << ans_mn << " "; cout << ans_mn << endl; for (int v = 1; v <= n; v++) { cout << res_mn[v] << " "; } cout << endl; for (int v = 1; v <= n; v++) { cout << res_mn[v] << " "; } cout << endl; } /// ---- - -------- ------ -------- -- - - - /// Just a reminder. Ubuntu password is I O I /// ---- - -------- ------ -------- -- - - -

Compilation message (stderr)

Village.cpp: In function 'void dfs(int, int)':
Village.cpp:58:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |   for (int i = 0; i < leaves.size() - 1; i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...