Cod sursa(job #2056253)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 4 noiembrie 2017 10:23:32
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int valb[16001],val[16001],maxim;
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);
    }
    for(i=1;i<=n;i++)
        BFS(i),rein(n);
    fout<<maxim;
    return 0;
}