Submission #1022339

#TimeUsernameProblemLanguageResultExecution timeMemory
1022339j_vdd16Closing Time (IOI23_closing)C++17
8 / 100
68 ms25424 KiB
#include <algorithm> #include <bitset> #include <cstdint> #include <cstring> #include <iostream> #include <limits.h> #include <math.h> #include <map> #include <numeric> #include <queue> #include <set> #include <stack> #include <string> #include <vector> #define int long long #define loop(X, N) for(int X = 0; X < (N); X++) #define all(V) V.begin(), V.end() #define rall(V) V.rbegin(), V.rend() using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<vector<ii>> vvii; typedef vector<bool> vb; typedef vector<vector<bool>> vvb; int n, x, y, k; vvii adj; signed max_score(signed _n, signed _x, signed _y, int _k, vector<signed> u, vector<signed> v, vector<signed> w) { n = _n; x = _x; y = _y; k = _k; adj = vvii(n); loop(i, n - 1) { adj[u[i]].push_back({ v[i], w[i] }); adj[v[i]].push_back({ u[i], w[i] }); } vi c(n, 0); int score = 0; typedef tuple<int, int, int> iii; priority_queue<iii, vector<iii>, greater<iii>> todo; todo.push({ 0, x, -1 }); todo.push({ 0, y, -1 }); while (todo.size()) { auto [cost, node, parent] = todo.top(); todo.pop(); if (k - cost < 0) break; c[node] = cost; k -= cost; score++; for (auto [child, weight] : adj[node]) { if (child == parent) continue; todo.push({ cost + weight - c[child], child, node }); } } return score; }
#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...