제출 #1240838

#제출 시각아이디문제언어결과실행 시간메모리
1240838bangan봉쇄 시간 (IOI23_closing)C++20
8 / 100
65 ms18756 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define eb emplace_back #define ll long long #define MP make_pair #define pii pair<int, int> const ll INF = 1ll << 50; int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) { vector<vector<pii>> adj(N); for (int i=0; i < N-1; i++) { adj[V[i]].eb(U[i], W[i]); adj[U[i]].eb(V[i], W[i]); } vector<bool> done(N); vector<ll> d(N, INF); d[X] = d[Y] = 0; priority_queue<pii, vector<pii>, greater<pii>> pq; pq.emplace(0, X); pq.emplace(0, Y); int ans = 0; while (!pq.empty()) { auto [_, v] = pq.top(); pq.pop(); if (done[v]) continue; done[v] = true; if (d[v] <= K) { ans++; K -= d[v]; } for (auto [u, w] : adj[v]) if (d[v]+w < d[u]) { d[u] = d[v]+w; pq.push(MP(d[u], u)); } } return 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...