Submission #1233356

#TimeUsernameProblemLanguageResultExecution timeMemory
1233356Sir_Ahmed_ImranClosing Time (IOI23_closing)C++17
0 / 100
1145 ms2146248 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; #define MAXN 200001 #define nl '\n' #define ff first #define ss second #define ll long long #define ld long double #define terminator main #define pll pair<ll,ll> #define append push_back #define pii pair<int,int> #define all(x) (x).begin(),(x).end() ll d[MAXN][2]; vector<pii> a[MAXN]; void dfs(int v, int u, int t){ for(auto & [i, j] : a[v]){ if(i == u) continue; d[i][t] = d[v][t] + j; dfs(i, v, t); } } int max_score(int n, int X, int Y, ll K, vector<int> U, std::vector<int> V, vector<int> W){ ll k; int ans; for(int i = 0; i < n - 1; i++){ a[V[i]].append({U[i], W[i]}); a[U[i]].append({V[i], W[i]}); } dfs(X, -1, 0); dfs(Y, -1, 1); vector<ll> v; for(int i = 0; i < n; i++) v.append(min(d[i][0], d[i][1])); sort(all(v)); ans = k = 0; for(auto & i : v){ if(k + i > K) break; k += i; ans++; } 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...