Submission #1145318

#TimeUsernameProblemLanguageResultExecution timeMemory
1145318Rawlat_vanakJobs (BOI24_jobs)C++20
11 / 100
103 ms33860 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define speedIO ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define mod 1000000007
#define f first
#define s second
#define pii pair<int,int>
#define pb push_back

vector<vector<int>> graph;
vector<int> x,dp;

void dfs(int u, int p){
	int sum=0;
	for(int v:graph[u]){
		if(v==p) continue;
		dfs(v,u);
		sum+=dp[v];
	}
	dp[u]=max(dp[u],x[u]+sum);
}

int32_t main(){
	speedIO;
	int t,n,m,k,q;
	//cin>>t;
	t=1;
	while(t--){
		int money;
		cin>>n>>money;
		graph.resize(n+1);
		x.resize(n+1);
		dp.resize(n+1,0);
		x[0]=0;
		for(int i=1;i<=n;i++){
			int cost,parent;
			cin>>cost>>parent;
			graph[i].pb(parent);
			graph[parent].pb(i);
			x[i]=cost;

		}
		dfs(0,-1);
		cout<<dp[0];
		



		
		



		



	
	
	


		

		

	}
	return 0;
}
#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...