Submission #445207

#TimeUsernameProblemLanguageResultExecution timeMemory
445207mosiashvililukaWorst Reporter 4 (JOI21_worst_reporter4)C++14
14 / 100
244 ms201684 KiB
#include<bits/stdc++.h> using namespace std; int A[200009],H[200009],C[200009]; int a,b,c,d,e,i,j,ii,jj,zx,xc; long long dp[5003][5003]; //pair <pair <int, int>, int> p[200009]; vector <int> v[200009]; void dfs(int q, int w){ for(j=1; j<=5000; j++){ if(j!=H[q]) dp[q][j]+=C[q]; } for(vector <int>::iterator it=v[q].begin(); it!=v[q].end(); it++){ if((*it)==w) continue; dfs((*it),q); for(j=1; j<=5000; j++){ dp[q][j]+=dp[(*it)][j]; } } for(j=4999; j>=1; j--){ dp[q][j]=min(dp[q][j+1],dp[q][j]); } } int main(){ ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); map <int, int> mp; map <int, int>::iterator it; cin>>a; for(i=1; i<=a; i++){ //cin>>p[i].first.first>>p[i].first.second>>p[i].second; cin>>A[i]>>H[i]>>C[i]; mp[H[i]]++; } zx=0; for(it=mp.begin(); it!=mp.end(); it++){ zx++; (*it).second=zx; } for(i=1; i<=a; i++){ H[i]=mp[H[i]]; } for(i=2; i<=a; i++){ v[A[i]].push_back(i); } dfs(1,0); cout<<dp[1][1]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...