Pagini recente » Cod sursa (job #2826895) | Cod sursa (job #648853) | Cod sursa (job #837139) | Cod sursa (job #2303931) | Cod sursa (job #484812)
Cod sursa(job #484812)
#include<fstream.h>
#include<vector>
const int NMAX=16005;
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector<int> a[NMAX];
int n,m,v[NMAX],p[NMAX],d[NMAX];
void dfs(int k)
{int i;
v[k]=1;
fout<<k<<'\n';
for(i=0;i<a[k].size();++i)
if(v[a[k][i]]==0)
{dfs(a[k][i]);
if(d[k]<d[k]+d[a[k][i]])
d[k]=d[k]+d[a[k][i]];
}
}
int main()
{fin>>n;
int x,y,i;
for(i=1;i<=n;++i)
{fin>>p[i];d[i]=p[i];}
for(i=1;i<=n-1;++i)
{fin>>x>>y;a[x].push_back(y);a[y].push_back(x);}
dfs(1);
for(i=1;i<=n;++i)
fout<<v[i]<<" ";
fout<<'\n';
fout<<d[1]<<'\n';
fin.close();
fout.close();
return 0;
}