Submission #1006744

#TimeUsernameProblemLanguageResultExecution timeMemory
1006744Younis_DwaiClosing Time (IOI23_closing)C++17
0 / 100
59 ms20292 KiB
#include "closing.h" #include <bits/stdc++.h> #include <vector> #define ll long long #define pb push_back #define in insert #define F first #define S second using namespace std; const int NN=2e5+5; int depth[NN]; vector<pair<int,int>> adj[NN]; multiset<int> s; void dfs(int node , int par){ for(auto u : adj[node]){ if(u.F==par) continue ; depth[u.F]=depth[node]+u.S; dfs(u.F,node); } return ; } int max_score(int N, int X, int Y, long long K,std::vector<int> U, std::vector<int> V, std::vector<int> W){ for(int i=0;i<N;i++){ depth[i]=0; adj[i].clear(); } s.clear(); for(int i=0;i<N-1;i++){ adj[U[i]].pb({V[i],W[i]}); adj[V[i]].pb({U[i],W[i]}); } int res=0; dfs(X,X); depth[Y]=0; dfs(Y,Y); while(s.size() && *s.begin()<=K){ K-=*s.begin(); res++; s.erase(s.begin()); } return res; }
#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...