제출 #840913

#제출 시각아이디문제언어결과실행 시간메모리
840913studyClosing Time (IOI23_closing)C++17
0 / 100
80 ms17128 KiB
#include "closing.h"

#include <bits/stdc++.h>
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<vector<pair<int,int>>> adj(N);
        for (int i=0; i<N; ++i){
                adj[U[i]].emplace_back(V[i],W[i]);
                adj[V[i]].emplace_back(U[i],W[i]);
        }
        vector<bool> vu(N);
        multiset<pair<int,int>> st;
        st.emplace(0,X);
        st.emplace(0,Y);
        vu[X] = vu[Y] = 1;
        int ans = 0;
        while (!st.empty()){
                auto [w,u] = *st.begin();
                st.erase(st.begin());
                if (K >= w){
                        K -= w;
                        ++ans;
                }
                for (auto [v,w2]:adj[u])
                        if (!vu[v]){
                                vu[v] = true;
                                st.emplace(w2,v);
                        }
        }
        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...