Cod sursa(job #484812)

Utilizator cosmyoPaunel Cosmin cosmyo Data 15 septembrie 2010 21:36:48
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#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;
}