제출 #1136999

#제출 시각아이디문제언어결과실행 시간메모리
1136999Mousa_AboubakerClosing Time (IOI23_closing)C++20
0 / 100
59 ms17220 KiB
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;

template <typename T>
using pqg = priority_queue<T, vector<T>, greater<T>>;

int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W)
{
	vector adj(N, vector<pair<int, int>>());
	for(int i = 0; i < N - 1; i++)
	{
		adj[U[i]].push_back({V[i], W[i]});
		adj[V[i]].push_back({U[i], W[i]});
	}
	pqg<tuple<int, int, int>> pq;
	for(auto [child, weight]: adj[X])
		pq.push({weight, child, X});
	for(auto [child, weight]: adj[Y])
		pq.push({weight, child, Y});
	long long sum = 0;
	int res = 0;
	while(not pq.empty())
	{
		auto [weight, u, p] = pq.top();
		pq.pop();

		if(sum + weight > K)
			break;
		sum += weight;
		res++;
		for(auto [child, childWeight]: adj[u])
			if(child != p)
				pq.push({weight + childWeight, child, u});
	}
    	return res;
}
#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...
#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...