Submission #1143273

#TimeUsernameProblemLanguageResultExecution timeMemory
1143273SonicMLTriumphal arch (POI13_luk)C++20
30 / 100
171 ms18476 KiB
#include <iostream> #include <vector> using namespace std; int const NMAX = 3e5; vector <int> g[1 + NMAX]; int depth[1 + NMAX]; int ans = 0; void DFS(int node, int parent, int arc, int builder) { depth[node] = depth[parent]+1; for(int i = 0;i < g[node].size();i++) { int to = g[node][i]; if(to != parent) { arc++; } } int adder = arc / depth[node]; if(arc % depth[node] != 0) { adder++; } builder = max(builder, adder); ans = max(ans, builder); for(int i = 0;i < g[node].size();i++) { int to = g[node][i]; if(to != parent) { DFS(to, node, arc, builder); } } } int main() { int n; cin >> n; for(int i = 1;i < n;i++) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } DFS(1, 1, 0, 0); cout << ans << '\n'; 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...