2013年12月20日 星期五

[ZJ] b108: 1. 銀河帝國旅行社


#include<stdio.h>
#include<string.h>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> s[10005];
int d[10005],vi[10005],ans,p;
void dfs(int v,int add){
    int i;
    d[v]=add;
    if(add>ans) ans=add,p=v;
    for(i=0;i<s[v].size();i++)
        if(vi[s[v][i]]==0)
            vi[s[v][i]]=1,dfs(s[v][i],add+1);
}
int main(){
    int n,x,i,j;
    while(scanf("%d",&n)!=EOF){
        memset(s,0,sizeof(s));
        memset(vi,0,sizeof(vi));
        ans=0;
        for(i=0;i<n;i++)
        while(scanf("%d",&x) && x!=-1)
            s[i].push_back(x),s[x].push_back(i);
        dfs(0,0);
        ans=0;
        memset(vi,0,sizeof(vi));
        dfs(p,0);
        printf("%d\n",ans);
    }
}

沒有留言:

張貼留言