Submission #1082681

#TimeUsernameProblemLanguageResultExecution timeMemory
1082681HappyCapybaraClosing Time (IOI23_closing)C++17
8 / 100
71 ms20560 KiB
#include "closing.h"
#include<bits/stdc++.h>
using namespace std;

#define ll long long

int max_score(int N, int X, int Y, ll K, vector<int> U, vector<int> V, vector<int> W){
    vector<vector<pair<int,int>>> g(N);
    for (int i=0; i<N-1; i++){
        g[U[i]].push_back({V[i], W[i]});
        g[V[i]].push_back({U[i], W[i]});
    }
    int res = 0;
    priority_queue<pair<int,int>> pq;
    vector<bool> seen(N, false);
    pq.push({0, X});
    pq.push({0, Y});
    while (!pq.empty()){
        int cur = pq.top().second, d = -pq.top().first;
        pq.pop();
        if (seen[cur]) continue;
        seen[cur] = true;
        if (d > K) break;
        res++;
        K -= d;
        for (pair<int,int> next : g[cur]) pq.push({-(d+next.second), next.first});
    }
    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...