Submission #856895

#TimeUsernameProblemLanguageResultExecution timeMemory
856895MikolajKolekTriumphal arch (POI13_luk)C++17
30 / 100
175 ms23124 KiB
#include <bits/stdc++.h> using namespace std; void BFS(const vector<vector<int>> &G, vector<bool> &vis, vector<int> &res) { //Index, sum, layer queue<tuple<int, int, int>> q; q.push({0, 0, 0}); res[0] = 0; while(!q.empty()) { auto [index, sum, layer] = q.front(); q.pop(); vis[index] = true; sum += G[index].size() - 1; layer++; int answer = max((sum + layer - 1) / layer, res[index]); //int answer = max(ceil(sum / layer), res[index]); for(const auto &element : G[index]) { if(!vis[element]) { q.push({element, sum, layer}); res[element] = answer; } } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n = *istream_iterator<int>(cin); vector<vector<int>> G(n, vector<int>()); G[0].push_back(0); for(int i = 0; i < n - 1; i++) { int a = *istream_iterator<int>(cin), b = *istream_iterator<int>(cin); G[a - 1].push_back(b - 1); G[b - 1].push_back(a - 1); } vector<bool> vis(n, false); vector<int> res(n); BFS(G, vis, res); cout << *max_element(res.begin(), res.end()); 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...