Submission #995446

#TimeUsernameProblemLanguageResultExecution timeMemory
99544612345678Jobs (BOI24_jobs)C++17
11 / 100
84 ms30544 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int nx=3e5+5; ll n, s, vs[nx], c[nx], p, dp[nx], res; vector<ll> d[nx]; void dfs(int u) { vs[u]=1; ll sm=c[u]; for (auto v:d[u]) dfs(v), sm+=dp[v]; dp[u]=max(0ll, sm); } int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n>>s; for (int i=1; i<=n; i++) { cin>>c[i]>>p; if (p!=0) d[p].push_back(i); } for (int i=1; i<=n; i++) if (!vs[i]) dfs(i), res+=dp[i]; cout<<res; } /* 6 1 3 0 -3 1 -5 0 2 1 6 3 -4 5 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...