Submission #1027900

#TimeUsernameProblemLanguageResultExecution timeMemory
1027900Mr_HusanboyClosing Time (IOI23_closing)C++17
8 / 100
82 ms22868 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second #define all(a) (a).begin(), (a).end() const long long infl = 2e18 + 10; template<typename T> int len(T &a){return a.size();} int max_score(int n, int x, int y, long long k, vector<int> U, vector<int> V, vector<int> W) { vector<vector<pair<int,int>>> g(n); for(int i = 0; i < n - 1; i ++){ g[U[i]].push_back({V[i], W[i]}); g[V[i]].push_back({U[i], W[i]}); } vector<ll> dis(n, infl); auto dfs = [&](auto &dfs, int i, int p = -1, ll d = 0)->void{ dis[i] = min(dis[i], d); for(auto [u, w] : g[i]){ if(u == p) continue; dfs(dfs, u, i, d + w); } }; dfs(dfs, x); dfs(dfs, y); sort(all(dis)); int i = 0; ll s = 0; while(i < n){ //cout << dis[i] << '\n'; s += dis[i]; if(s > k) break; i ++; } return i; }
#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...