Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<vector>
- using namespace std;
- int dp[300010];
- vector<int> adj[300010];
- int cal(int u)
- {
- if(dp[u])return dp[u];
- int cnt = 0;
- int maxtemp = 1;
- for(int i=0;i<adj[u].size();i++){
- int v = adj[u][i];
- if(v > u)
- maxtemp = max(maxtemp,cal(v) + 1);
- }
- return dp[u] = maxtemp;
- }
- int main(){
- int n;
- scanf("%d",&n);
- for(int i=1;i<n;i++){
- int u,v;
- scanf("%d %d",&u,&v);
- adj[u].push_back(v);
- adj[v].push_back(u);
- }
- int ans = -2e9;
- for(int i = 1; i<=n;i++){
- ans = max(ans,cal(i));
- }
- printf("%d",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment