Submission #1215546

#TimeUsernameProblemLanguageResultExecution timeMemory
1215546qwusha봉쇄 시간 (IOI23_closing)C++20
0 / 100
407 ms21828 KiB
#include <bits/stdc++.h> #include "closing.h" using namespace std; #define fi first #define se second typedef long long ll; typedef long double ld; mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count()); ll inf = 1e15; vector<vector<pair<ll, ll>>> g; int max_score(int n, int x, int y, ll k, vector<int> u, vector<int> v, vector<int> w) { g.resize(n); for (int i = 0; i < n - 1; i++) { g[u[i]].push_back({v[i], w[i]}); g[v[i]].push_back({u[i], w[i]}); } vector<ll> dist(n, inf); set<pair<ll, ll>> st; dist[x] = 0; dist[y] = 0; int cnt = 0; st.insert({0, x}); st.insert({0, y}); ll cur = k; while (!st.empty()) { auto pa = *st.begin(); st.erase(pa); ll d = pa.fi, ve = pa.se; if (cur >= d) { cur -= d; cnt++; } for (auto [uv, ti] : g[ve]) { if (dist[uv] > dist[ve] + ti) { dist[uv] = dist[ve] + ti; if (dist[uv] <= cur) { st.insert({dist[uv], uv}); } } } } return cnt; } /* signed main() { }*/
#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...