#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int n, m; vector

g[100010], gr[100010]; int dp[100010], dp2[100010]; int solve(int x){ if(dp[x]>=0) return dp[x]; int ret=0; for(auto p:g[x]){ ret=max(ret, solve(p.first)+p.second); } return dp[x]=ret; } int solve2(int x){ if(dp2[x]>=0) return dp2[x]; int ret=0; for(auto p:gr[x]){ ret=max(ret, solve2(p.first)+p.second); } return dp2[x]=ret; } int main() { cin>>n>>m; for(int i=0; i>a>>b>>c; g[b].push_back({a, c}); gr[a].push_back({b, c}); } fill(dp, dp+n, -1); fill(dp2, dp2+n, -1); for(int i=0; i