Submission #1295037

#TimeUsernameProblemLanguageResultExecution timeMemory
1295037simona1230Worst Reporter 4 (JOI21_worst_reporter4)C++20
0 / 100
3 ms1276 KiB
#include <bits/stdc++.h> using namespace std; void speed() { ios_base::sync_with_stdio(NULL); cin.tie(nullptr); cout.tie(nullptr); } long long n; long long a[200001]; long long h[200001]; long long c[200001]; vector<long long> v[200001]; long long all; void read() { cin>>n; for(long long i=1;i<=n;i++) { cin>>a[i]>>h[i]>>c[i]; if(a[i]!=i)v[a[i]].push_back(i); all+=c[i]; } } long long dp[200001]; long long ans[200001]; long long u(long long i,long long x) { if(h[i]>=x)return dp[i]; long long sum=0; for(long long j=0;j<v[i].size();j++) { long long nb=v[i][j]; sum+=u(nb,x); } return sum; } void dfs(long long i) { dp[i]=c[i]; for(long long j=0;j<v[i].size();j++) { long long nb=v[i][j]; dfs(nb); dp[i]+=u(nb,h[i]); } } void dfs1(long long i) { long long sum=0; for(long long j=0;j<v[i].size();j++) { long long nb=v[i][j]; dfs1(nb); sum+=ans[nb]; } ans[i]=max(dp[i],sum); } int main() { speed(); read(); dfs(1); dfs1(1); cout<<all-ans[1]<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...