#include <bits/stdc++.h>
using namespace std;
queue<int> q;
int dist[300001], h[300001];
bool used[300001];
vector<int> adj[300001];
int main()
{
int n, i, u, v;
cin >> n;
for ( i= 0; i < n - 1; i ++ ) {
cin >> u >> v;
adj[u].push_back( v );
adj[v].push_back( u );
}
q.push( 1 );
used[1] = true;
while ( !q.empty() ) {
u = q.front();
for ( i = 0; i < adj[u].size(); i ++ ) {
if ( used[ adj[u][i] ] == false ) {
q.push( adj[u][i] );
dist[ adj[u][i] ] = dist[u] + 1;
used[adj[u][i]] = true;
}
}
q.pop();
}
for ( i = 1; i <= n; i ++ ) {
h[dist[i]] ++;
}
int ans = 0, mx, s = 0;
i = 1;
while ( h[i] != 0 ) {
s += h[i];
mx = ( s + i - 1 ) / i;
ans = max( mx, ans );
i ++;
}
cout << ans << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |