Cod sursa(job #2056271)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 4 noiembrie 2017 10:35:17
Problema Asmax Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int val[16001],maxim;
bool viz[16001];
vector <int>v[16001];
void BFS(int x)
{
    for(int i=0;i<v[x].size();i++)
    {
        BFS(v[x][i]);
        val[x]+=val[v[x][i]];
    }
    if(val[x]<0)
        val[x]=0;
    maxim=max(maxim,val[x]);
}
void rein(int n)
{
    while(n>0)
    {
      //  val[n]=valb[n];
      n--;
    }
}
int main()
{
    int n,i,x,y;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>val[i];
//valb[i]=val[i];
    }
    for(i=1;i<=n;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);
        viz[y]=1;
    }
    for(i=1;i<=n;i++)
    {
        if(viz[i]==0)
        {
            BFS(x);
            break;
        }
    }
    fout<<maxim;
    return 0;
}