Submission #1217389

#TimeUsernameProblemLanguageResultExecution timeMemory
1217389fastClosing Time (IOI23_closing)C++20
0 / 100
61 ms17220 KiB
#include "closing.h" #include "bits/stdc++.h" using namespace std; #define vec vector int max_score(int N, int X, int Y, long long K, vec<int> U, vec<int> V, vec<int> W) { vec<vec<pair<int, int>>> adj(N); 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]}); } vec<char> vis(N); priority_queue<pair<long long, int>, vec<pair<long long, int>>, greater<pair<long long, int>>> pq; vis[X] = 1; vis[Y] = 1; int cnt = 2; long long used = 0; for (auto &e : adj[X]) if (!vis[e.first]) pq.push({e.second, e.first}); for (auto &e : adj[Y]) if (!vis[e.first]) pq.push({e.second, e.first}); while (!pq.empty()) { auto [w, node] = pq.top(); pq.pop(); if (vis[node]) continue; if (used + w > K) break; used += w; vis[node] = 1; cnt++; for (auto &ne : adj[node]) if (!vis[ne.first]) pq.push({ne.second, ne.first}); } return cnt; }
#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...