我想不明白为什么会多一行输入
挑不出什么毛病了,但输入就是会莫名其妙的多一行,如果把最后多出来的一行输入胡乱输进去,会报错((((((())))))))
#include<bits/stdc++.h>
using namespace std;
vector<int> son[16010];
int n,a[16010],dp[16010];
int ans=-2147483647;
void dfs(int fa,int x){
dp[x]=a[x];
for(int i=0;i<son[x].size();i++){
int t=son[x][i];
if(t!=fa){
dfs(x,t);
if(dp[t]>0) dp[x]+=dp[t];
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n-1;i++){
int x,y;
scanf("%d%d",&x,&y);
son[y].push_back(x);
son[x].push_back(y);
}
dfs(0,1);
for(int i=1;i<=n;i++) ans=max(ans,dp[i]);
scanf("%d",ans);
return 0;
}
谢谢大佬(卑微)