제출 #1215544

#제출 시각아이디문제언어결과실행 시간메모리
1215544qwusha봉쇄 시간 (IOI23_closing)C++20
0 / 100
53 ms17988 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()); int inf = 1e9; vector<vector<pair<int, int>>> 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<int> dist(n, inf); set<pair<int, int>> st; dist[x] = 0; dist[y] = 0; int cnt = 0; st.insert({0, x}); st.insert({0, y}); int cur = k; while (!st.empty()) { auto pa = *st.begin(); st.erase(pa); int 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...