Cod sursa(job #3306582)

Utilizator SGLDCASA SI PODUL SGLD Data 12 august 2025 13:37:14
Problema Cerere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include<vector>
using namespace std;
ifstream in("easygraph.in");
ofstream out("easygraph.out");
#define int long long
vector<int> se[30001];
int cnt;
int arr[15001];
int nr[1000001];
int dp[1000001];
void dfs(int sursa)
{
    int mx=0;
    arr[sursa]=1;
    for(auto vec:se[sursa])
    {
        if(arr[vec]==0){
            dfs(vec);
        }
            mx=max(mx,dp[vec]);
    }
    dp[sursa]+=mx;
}
signed main()
{
    int n,m,a,b,t;
    in>>t;
    while(t--)
    {
        in>>n>>m;
        for(int i=1; i<=n; i++)
        {
            in>>dp[i];
            se[i].clear();
            nr[i]=0;
            arr[i]=0;
        }
        for(int i=1; i<=m; i++)
        {
            in>>a>>b;
            se[a].push_back(b);
            nr[b]++;
        }
        for(int i=1; i<=n; i++)
        {
            if(nr[i]==0)
            {
                cnt++;
                dfs(i);
            }
        }
        int ans=-2000000000;
        for(int i=1; i<=n; i++)
        {
            ans=max(ans,dp[i]);
        }
        out<<ans<<endl;
    }
    return 0;
}