Cod sursa(job #3315334)

Utilizator WiseAndrei4Vetrila Andrei WiseAndrei4 Data 13 octombrie 2025 21:27:41
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.89 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
//ifstream fin("cifra.in");
//ofstream gout("cifra.out");
ifstream fin("asmax.in");
ofstream gout("asmax.out");
void suma(int x,vector<int>&s,vector<vector<int>>&g,
          vector<bool>&viz,vector<int>&v)
{
    viz[x]=1;
    s[x]=v[x];
    for(auto i:g[x])if(!viz[i])
        {
            suma(i,s,g,viz,v);
            s[x]=max(s[x],s[x]+s[i]);
        }
}
int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(0);
    gout.tie(0);
    int n,i,j;
    fin>>n;
    vector<int>v(n+1,-2),s(n+1,-2e9);
    vector<vector<int>>g(n+1,vector<int>(0));
    for(i=1; i<=n; ++i)fin>>v[i];
    while(fin>>i>>j)
    {
        g[i].push_back(j);
        g[j].push_back(i);
    }
    vector<bool>viz(n+1,0);
    suma(1,s,g,viz,v);
    gout<<*max_element(s.begin()+1,s.end());
}