Submission #979901

#TimeUsernameProblemLanguageResultExecution timeMemory
979901vjudge1Closing Time (IOI23_closing)C++17
8 / 100
74 ms25428 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector <int>; using vll = vector <ll>; using ii = pair <ll, ll>; using vii = vector <ii>; const ll MAXN = 2E5+16, INF = ll(1E18)+16; vii adj[MAXN]; int max_score (int n, int u1, int u2, ll k, vi u, vi v, vi w) { fill(adj, adj+n, vii({})); for (ll i = 0; i < n-1; i++) { adj[u[i]].push_back({ v[i], w[i] }); adj[v[i]].push_back({ u[i], w[i] }); } priority_queue <ii> pq; vll dis(n, INF); dis[u1] = 0; dis[u2] = 0; pq.push({ 0, u1 }); pq.push({ 0, u2 }); ll ans = 0; while (pq.size()) { ll u = pq.top().second; pq.pop(); if (k-dis[u] < 0) break; k -= dis[u]; ans++; for (auto [v, w] : adj[u]) { if (dis[v] == INF) { dis[v] = dis[u]+w; pq.push({ -dis[v], v }); } } } return int(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...