Submission #1206793

#TimeUsernameProblemLanguageResultExecution timeMemory
1206793PekibanClosing Time (IOI23_closing)C++20
0 / 100
237 ms27324 KiB
#include "closing.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define pb push_back

int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W) {
    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<>> pq;
    pq.push({0, X});
    pq.push({0, Y});
    int ans = 0;
    bool vis[N];
    vector<pair<ll, int>> g[N];
    for (int i = 0; i < N-1; ++i)   g[U[i]].pb({V[i], W[i]}), g[V[i]].pb({U[i], W[i]});
    ll di[N];
    fill(vis, vis+N, 0);
    di[X] = di[Y] = 0;
    while (!pq.empty()) {
        auto [D, s] = pq.top(); pq.pop();
        if (vis[s]) continue;
        cout << K << ' ' << D << ' ' << s << endl;
        vis[s] = 1;
        if (K >= D) K -= D, ans++;
        for (auto [u, w] : g[s]) {
            if (!vis[u])    pq.push({D+w, u});
        }
    }
    cout << endl << endl;
    return ans;
}
#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...