제출 #587625

#제출 시각아이디문제언어결과실행 시간메모리
587625M_WRoad Closures (APIO21_roads)C++17
24 / 100
2080 ms25032 KiB
#include <bits/stdc++.h>
#define ii pair<long long, long long>
using namespace std;
vector<ii> adj[200002];

ii dfs(int a, int p, long long wt, int k){
	long long sm = 0;
	priority_queue<long long, vector<long long>, greater<long long>> pq;
	for(auto [x, w]: adj[a]){
		if(x == p) continue;
		ii res = dfs(x, a, w, k);
		sm += res.first;
		pq.push(res.second - res.first);
	}
	while(!pq.empty() && pq.top() < 0){
		sm += pq.top(); pq.pop();
	}
	while(pq.size() > k){
		sm += pq.top(); pq.pop();
	}
	ii res2 = {sm, sm + wt};
	if(a != 0 && !pq.empty() && pq.size() == k) res2.first += pq.top();
	
	return res2; 
}

vector<long long> minimum_closure_costs(int N, vector<int> U, vector<int> V, vector<int> W) {
	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]});
	}
	vector<long long> ans(N, 0);
	for(int i = N - 1; i >= 0; i--){
		ii res = dfs(0, 0, 0, i);
		ans[i] = res.first;
	}
	
	return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

roads.cpp: In function 'std::pair<long long int, long long int> dfs(int, int, long long int, int)':
roads.cpp:18:18: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |  while(pq.size() > k){
      |        ~~~~~~~~~~^~~
roads.cpp:22:40: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |  if(a != 0 && !pq.empty() && pq.size() == k) res2.first += pq.top();
      |                              ~~~~~~~~~~^~~~
#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...