Submission #1168095

#TimeUsernameProblemLanguageResultExecution timeMemory
1168095Sir_Ahmed_ImranTriumphal arch (POI13_luk)C++20
100 / 100
369 ms23728 KiB
// 01001100 01001111 01010100 01000001 \\ // \\ // ╦ ╔═╗╔╦╗╔═╗ \\ // ║ ║ ║ ║ ╠═╣ \\ // ╩═╝╚═╝ ╩ ╩ ╩ \\ // \\ // 01001100 01001111 01010100 01000001 \\ #include <bits/stdc++.h> using namespace std; #define N 300001 #define nl '\n' #define ff first #define ss second #define add insert #define ll long long #define ld long double #define terminator main #define pll pair<ll,ll> #define append push_back #define pii pair<int,int> #define all(x) (x).begin(),(x).end() #define L0TA ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) int dp[N]; int dept[N]; vector<int> a[N]; void dfs(int v, int u, int x){ dp[v] = a[v].size() - 1; for(auto & i : a[v]) if(i != u) dfs(i, v, x); if(dp[v] > x) dp[u] += dp[v] - x; } void solve(){ int n, p, q; cin >> n; a[1].append(0); for(int i = 1; i < n; i++){ cin >> p >> q; a[p].append(q); a[q].append(p); } int ans = -1; for(int i = 262144; i > 0; i /= 2){ dp[0] = 0; dfs(1, 0, ans + i); if(dp[0]) ans += i; } cout << ans + 1; } int terminator(){ L0TA; solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...