Submission #1000449

#TimeUsernameProblemLanguageResultExecution timeMemory
1000449MardonbekhazratovClosing Time (IOI23_closing)C++17
8 / 100
53 ms17236 KiB
// #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") #include "closing.h" #include <queue> #include <vector> using namespace std; #define ff first #define ss second vector<vector<pair<int,int>>>v; vector<bool>vis; int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W){ v.assign(N,vector<pair<int,int>>(0)); vis.assign(N,false); for(int i=0;i<N-1;i++){ v[U[i]].push_back({V[i],W[i]}); v[V[i]].push_back({U[i],W[i]}); } priority_queue<pair<long long,int>>q; int ans=2; vis[X]=true; vis[Y]=true; for(auto [z,w]:v[X]) q.push({-w,z}); for(auto [z,w]:v[Y]) q.push({-w,z}); while(!q.empty()){ auto [d,x]=q.top(); q.pop(); if(K+d<0){ break; } K+=d; vis[x]=true; ans++; for(auto [z,w]:v[x]) if(!vis[z]) q.push({d-w,z}); } 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...