Submission #1081644

#TimeUsernameProblemLanguageResultExecution timeMemory
1081644BoasClosing Time (IOI23_closing)C++17
8 / 100
82 ms20696 KiB
#include "closing.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; template <typename T1, typename T2> using indexed_map = tree<T1, T2, less<T1>, rb_tree_tag, tree_order_statistics_node_update>; #define pb push_back #define loop(x, i) for (int i = 0; i < x; i++) #define ALL(x) begin(x), end(x) typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<vi> vvi; typedef vector<vii> vvii; typedef long long i64; int max_score(int N, int X, int Y, i64 K, vi U, vi V, vi W) { vvii adj(N); loop(N - 1, i) { adj[U[i]].pb({V[i], W[i]}); adj[V[i]].pb({U[i], W[i]}); } int res = 0; i64 sum = 0; vb vis(N); priority_queue<ii> q; q.push({0, X}); q.push({0, Y}); while (!q.empty()) { auto [d, i] = q.top(); q.pop(); if (vis[i]) continue; vis[i] = 1; res++; sum -= d; if (sum > K) { res--; break; } for (auto [j, w] : adj[i]) { if (vis[j]) continue; q.push({d - w, j}); } } 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...