为什么洛谷下载下来的数据复制到编译器里会黏在一起 就本来是: 10 44 20 -91 90 -82 74 40 -38 -4 -26 2 1 3 1 4 2 5 4 6 5 7 3 8 2 9 4 10 3 而复制到编译器变为: 1044 20 -91 90 -82 74 40 -38 -4 -26 2 1 3 1 4 2 5 4 6 5 7 3 8 2 9 4 10 3
代码:luogu(1122)
#include<bits/stdc++.h>
using namespace std;
long long a[200000],b[200000],sum=-2147483647,u,v,n;
vector<long long>c[200000];
inline void dfs(long long,long long);
int main()
{
scanf("%lld",&n);
for(long long register i=1;i<=n;++i)
cin>>a[i];
for(long long register i=1;i<n;++i)
{
cin>>u>>v;
c[u].push_back(v);
c[v].push_back(u);
}
dfs(1,0);
for(long long register i=1;i<=n;++i)
sum=max(sum,b[i]);
cout<<sum;
return 0;
}
inline void dfs(long long x,long long y)
{
b[x]=a[x];
long long len=c[x].size();
for(long long register i=0;i<len;++i)
{
long long ans=c[x][i];
if(ans!=y)
{
dfs(ans,x);
if(b[ans]>0)
b[x]+=b[ans];
}
}
}