#25835: c 會溢位怎麼辦


lyanshao@gmail.com (nhush19301023)

學校 : 臺北市立南湖高級中學
編號 : 136115
來源 : [123.193.212.104]
最後登入時間 :
2022-06-04 22:41:28
b967. 4. 血緣關係 -- 2016年3月apcs | From: [123.193.212.104] | 發表日期 : 2021-06-26 16:16

#include<stdio.h>

#include<stdlib.h>

int n=0;

int f=0,s=0;

int map[9999][9999];

int visited[9999]={0};

int depth[9999]={0};

int temp=0,x=0;

void dfs(int id){

    for(int i=0;i<n;i++){

        if(map[id][i]==1&&visited[i]==0){

            visited[i]=1;

            depth[i]=depth[id]+1;

            dfs(i);

        }

    }

    for(int i=0;i<n;i++){

        if(depth[i]>=temp){

            temp=depth[i];

            x=i;

        }

    }

}

int main(){

 

    while(scanf("%d",&n)!=EOF){

        if(n!=2){

            visited[0]=1;

        depth[0]=0;

        for(int i=1;i<n;i++){

            if(scanf("%d%d",&f,&s)==2){

                map[f][s]++;

            map[s][f]++;

            }

        }

        dfs(0);

        for(int k=0;k<n;k++){

            visited[k]=0;

            depth[k]=0;

        }

        dfs(x);

        printf("%d\n",temp);

        for(int i=0;i<=n;i++){

            for(int j=0;j<=n;j++){

                map[i][j]=0;

            }

            visited[i]=0;

            depth[i]=0;

        }

        temp=0;

        }

        else{

            printf("1");

        }

    }

return 0;

}

怎麼會有1的答案?

 
ZeroJudge Forum