제출 #1222979

#제출 시각아이디문제언어결과실행 시간메모리
1222979nikd봉쇄 시간 (IOI23_closing)C++20
8 / 100
112 ms29112 KiB
#include "closing.h" #include <bits/stdc++.h> #include <vector> using ll = long long; using namespace std; 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<ll> dst; vector<vector<array<ll, 2>>> adj(n); for(int i = 0; i<n-1; i++){ adj[U[i]].push_back({V[i], W[i]}); adj[V[i]].push_back({U[i],W[i]}); } function<void(int, int, ll)> find_dst = [&](int v, int p, ll d){ dst.push_back(d); for(auto [u, w]: adj[v]){ if(u == p) continue; if(d+w > k) continue; find_dst(u, v, d+w); } return; }; find_dst(x, -1, 0); find_dst(y, -1, 0); int sol = 0; sort(dst.begin(), dst.end()); for(ll d: dst){ if(k-d >= 0){ k-= d; sol++; } else break; } return sol; }
#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...