Pagini recente » Cod sursa (job #46291) | Cod sursa (job #1614225) | Cod sursa (job #3182906) | Cod sursa (job #2763857) | Cod sursa (job #189611)
Cod sursa(job #189611)
#include<stdio.h>
#define DIM 100
int j,max,S,n,v[DIM],x,y,i,nr[DIM];
int *m[DIM];
int viz[DIM];
void df(int x){
int i;
viz[x]=1;
for(i=1;i<=m[x][0];i++){
if(!viz[m[x][i]])
df(m[x][i]);
}
for(j=1;j<=m[x][0];j++){
S=v[m[x][j]];
if(S>0)
v[x]=S+v[x];
}
}
int main(){
FILE *f=fopen("asmax.in","r");
fscanf(f,"%d ",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
for(i=1;i<=n-1;i++){
fscanf(f,"%d %d",&x,&y);
// if(x<y)
nr[x]++;
// else
nr[y]++;
}
for(i=1;i<=n;i++){
m[i] = new int [nr[i]+10];
}
FILE *ff=fopen("asmax.in","r");
fscanf(ff,"%d ",&n);
for(i=1;i<=n;i++)
fscanf(ff,"%d",&v[i]);
for(i=1;i<=n;i++)
m[i][0]=0;
for(i=1;i<=n-1;i++){
fscanf(ff,"%d %d",&x,&y);
// if(x<y){
m[x][0]++;
m[x][m[x][0]]=y;
// }
// else{
m[y][0]++;
m[y][m[y][0]]=x;
// }
}
fclose(ff);
df(1);
max=-10000000;
for(i=1;i<=n;i++)
if(v[i]>max)
max=v[i];
FILE *g=fopen("asmax.out","w");
fprintf(g,"%d",max);
fclose(g);
return 0;
}