#include <bits/stdc++.h>
using namespace std;
const int maxN=3000007;
int dist[maxN];
vector <vector <int>> adj(maxN);
int n;
int cate[maxN];
void dfs(int node, int prev)
{
for (auto aux:adj[node])
{
if (aux==prev) continue;
dist[aux]=dist[node]+1;
dfs(aux, node);
}
}
signed main()
{
cin>>n;
for (int i=1; i<n; i++)
{
int a, b; cin>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
dfs(1, -1);
int ans=0, maxx=0;
for (int i=1; i<=n; i++)
{
cate[dist[i]]++;
maxx=max(maxx, dist[i]);
}
for (int i=0; i<=n; i++) ans=max(ans, cate[i]);
cout<<min(ans, (int)ceil((n-1)/maxx));
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... |